0

我在 android 上相当新,我不确定意图。

如果我有 3 个活动 AB 和 C,并且活动 A 需要在不同时间从 B 和 C 接收捆绑包(例如:从 B 移动到 A,或从 C 移动到 A),我将如何去做?

希望这个问题不会太模糊......

4

2 回答 2

0

要从活动 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");
        }
     }
}
于 2012-03-29T17:41:27.710 回答
-1

您可以随时从活动 B 或 C 调用活动 A。您只需创建一个新的 Intent 将您的当前上下文和您要调用的 Activity 发送给它。例如:

Intent i = new Intent(this, ActivityB.class);

然后通过调用开始你的意图:

开始活动(一);

请记住,您必须确保在清单中定义了所有活动。

于 2012-03-29T17:48:02.947 回答