如何在Android上的活动之间传递值?

mag*_*llo 21 android android-activity

这是我的应用程序的导航:

Activity1来电Activity2Activity2.finish(),拨打Activity3Activity3.finish()

Activity3完成后,它调用onResume的方法Activity1.现在我如何将值传递Activity3Activity1

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 答案