将数据发送回意图

问题描述 投票:0回答:3

我试图将第二个活动的数据发送回第一个活动。在我的第二个活动中创建实例后:

Intent i = new Intent(this,MainActivity.class);
i.putExtra("Name",Name);
startActivity(i);

我在我的第一个活动中使用onResume方法处理发送的数据,但是当我回去时,似乎永远不会调用onResume。我该如何触发它?

java android
3个回答
2
投票

首先,我们需要使用startActivityForResult启动第二个活动。例如:

Intent intent=new Intent(FirstActivity.this, SecondActivity.class);  
startActivityForResult(intent, 2); // the 2 is the request code 

我们还需要在FirstActivity中实现onActivityResult:

@Override  
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);  

    // Check if the request code corresponds to SecondActivity  
    // You can also check if resultCode has the value you were expecting
    if(requestCode==2) {
        // Retrieve the information passed. A message string in our case
        String message=data.getStringExtra("Message");
    }  
}

最后,在SecondActivity中,使用它来完成并传回数据:

String message = "Going back to First Activity";  
Intent intent = new Intent();  
intent.putExtra("Message", message);  
setResult(RESULT_OK, intent); // RESULT_OK is just an integer predefined by Android. You can pass your own value, if needed
finish();

您可能还想查看this tutorial


0
投票

您可以使用公共静态对象来保存两个活动之间的共享数据。因为您可以在第二个活动中编辑其属性,而无需将其发送回第一个活动


0
投票

您必须使用活动A中的startActivityForResult(),然后在完成处理B的结果时,通过重写onActivityResult()来处理活动A中的结果。

© www.soinside.com 2019 - 2024. All rights reserved.