我在 android 上相当新,我不确定意图。
如果我有 3 个活动 AB 和 C,并且活动 A 需要在不同时间从 B 和 C 接收捆绑包(例如:从 B 移动到 A,或从 C 移动到 A),我将如何去做?
希望这个问题不会太模糊......
我在 android 上相当新,我不确定意图。
如果我有 3 个活动 AB 和 C,并且活动 A 需要在不同时间从 B 和 C 接收捆绑包(例如:从 B 移动到 A,或从 C 移动到 A),我将如何去做?
希望这个问题不会太模糊......
要从活动 A 开始活动 B,您可以调用
final int REQ_STARTB = 101; // anything non-zero
startActivityForResult(REQ_STARTB, new Intent(A.this, B.class)).
//Similar for C.
然后,当您从 B 获得一些数据并想要将它们传递回 A 时,您可以从 B 执行以下操作:
Intent I = new Intent()
I.putExtra("MyStringData", stringYouWantToReturn);
//and similar for other types
setResult(RESULT_OK);
finish();
所以它回到 A 并且在 A 中你将拥有
public onActivityResult(int req, int res, Intent data) {
if(req == REQ_STARTB) {
if(res == RESULT_OK) {
String dataFromB = data.getStringExtra("MyStringData");
}
}
}
您可以随时从活动 B 或 C 调用活动 A。您只需创建一个新的 Intent 将您的当前上下文和您要调用的 Activity 发送给它。例如:
Intent i = new Intent(this, ActivityB.class);
然后通过调用开始你的意图:
开始活动(一);
请记住,您必须确保在清单中定义了所有活动。