我有FirstActivity,它通过Intent调用SecondActivity
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
Bundle extras = new Bundle();
extras.putString("param1","aaa");
extras.putString("param2","bbb");
intent.putExtras(extras);
startActivityForResult(intent, 1);
在SecondActivity完成后,我希望SecondActivity将一些变量发送给FirstActivity。然后我调用finsih(),这样它就会回到FirstActivity。如何让SecondActivity发送变量并在FirstActivity中获得结果?
答案 0 :(得分:0)
只需在Intent
中再制作一个SecondActivity
首先从FirstActivity
Bundle extras = getArguments();
String extra1 = extras.getString("param1");
String extra2 = extras.getString("param2");
然后将意图转移到FirstActivity
Intent intent = new Intent(getApplicationContext(), FirstActivity.class);
intent.putExtra("param1","aaa");
intent.putExtra("param2","bbb");
startActivity(intent);
finish();
我希望我能够解决你的问题。
答案 1 :(得分:0)
很容易。
使用startActivityForResult,给出一个整数来标识Activity, 然后在你的FirstActivity上覆盖onActivityResult方法。
http://developer.android.com/training/basics/intents/result.html
答案 2 :(得分:0)
您可以在以下链接中查看我对类似问题的回答
How to keep edittexts values after calling another activity than back
答案 3 :(得分:0)
这是一个示例,并根据您的需要进行更改。
在第一个活动上添加覆盖onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) //The request code you use on statActivityForResult (Any integer value)
{
if(resultCode == RESULT_OK)
{
String stringFromSecondActivity = data.getExtras().getString("Key");
}
}
}
像你发布的那样开始第二项活动
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
Bundle extras = new Bundle();
extras.putString("param1","aaa");
extras.putString("param2","bbb");
intent.putExtras(extras);
startActivityForResult(intent, 0); //This is the request code to check on onActivityResult when you retrieve values from the SecondActivity after finishing it.
在你的第二个活动中,在完成它之前,你应该获得意图并添加一些额外内容。
getIntent().putExtra("Key", "theStringForTheFirstActivity");
setResult(RESULT_OK, getIntent());
finish();
当第二个Activity完成后,它会自动在你的第一个Activity上执行onActivityResult,你可以从第二个Activity获得你需要的值。