从两个不同的活动获得意图

时间:2012-03-29 16:53:14

标签: android android-intent bundles

我对android很新,我不确定意图。

如果我有3个活动,AB和C,活动A需要在不同时间接收来自B和C的捆绑(例如:从B移动到A,或从C移动到A),我将如何进行是什么?

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

2 个答案:

答案 0 :(得分: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");
        }
     }
}

答案 1 :(得分:-1)

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

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

然后通过致电:

开始你的意图

startActivity(ⅰ);

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