将数据发送回意图

时间:2018-10-30 17:56:25

标签: java android

我正在尝试将数据从第二个活动发送回第一个活动。在第二项活动中创建实例后:

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您必须使用Activity A中的startActivityForResult(),然后在处理完B中的结果后,通过覆盖onActivityResult()将结果处理回Activity A中。