我正在尝试将数据从第二个活动发送回第一个活动。在第二项活动中创建实例后:
Intent i = new Intent(this,MainActivity.class);
i.putExtra("Name",Name);
startActivity(i);
我在第一个活动中使用onResume方法处理发送的数据,但是当我返回时似乎永远不会调用onResume。我该如何触发?
答案 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中。