mag*_*llo 21 android android-activity
这是我的应用程序的导航:
Activity1来电Activity2→Activity2.finish(),拨打Activity3→Activity3.finish()
当Activity3完成后,它调用onResume的方法Activity1.现在我如何将值传递Activity3给Activity1?
Mik*_*all 48
Umesh展示了一种很好的技术,但我认为你想要相反的方向.
步骤1
启动活动2和3时,请使用startActivityForResult.这允许您处理调用活动中的结果.
startActivityForResult(MY_REQUEST_ID);
Run Code Online (Sandbox Code Playgroud)
第2步
在活动2和3中,调用setResult(int, Intent)以返回值:
Intent resultData = new Intent();
resultData.putExtra("valueName", "valueData");
setResult(Activity.RESULT_OK, resultData);
finish();
Run Code Online (Sandbox Code Playgroud)
第3步
在您的呼叫激活中,实现onActivityResult并获取数据:
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == MY_REQUEST_ID) {
if (resultCode == RESULT_OK) {
String myValue = data.getStringExtra("valueName");
// use 'myValue' return value here
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
技术#2
是的,您还可以通过向扩展的应用程序添加类来使用全局应用程序状态Application,请参阅此StackOverflow 答案