在活动之间传递对象

时间:2014-04-28 06:45:33

标签: android

我创建了一个有三个活动的应用程序,它的工作原理如下:

Activity A --> Activity B --> Activity C

从活动C返回到活动A是这样的:

Activity C --> Activity B --> Activity A

我想将Activity C中的对象传递给Activity A,但是当我按下后退按钮或者什么时候,所有活动的对象都被破坏了,我无法在Activity上接收到该对象A.如何将Activity C中的对象传递给Activity A

(我使用DB来解决这个问题,当我在活动C中时,我将对象插入表中,并使用活动A中的表来获取对象。但我正在寻找更简单的方法来解决它)

请指导我......

由于

3 个答案:

答案 0 :(得分:1)

您可以覆盖活动A和B中的onActivityResult,以便B只从C中取回结果并将其传递回A

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  switch(requestCode) {
     case (A) : {
      if (resultCode == Activity.RESULT_OK) {
        // Extract the data returned from the Activity.
      }
      break;
    } 
  }
}

在B和C中你应该将对象传回给调用活动:

Intent resultIntent = new Intent();
// add your object here to the resultIntent
setResult(Activity.RESULT_OK, resultIntent);
finish();

答案 1 :(得分:1)

使用Activity C中的shared Preferences,如图所示。

SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
data.edit().putString("somevalue", myvalue).commit();

并在Activity A中将其称为:

SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String myval= data.getString("somevalue",""); 

答案 2 :(得分:0)

如果这是原始数据类型,则可以使用SharedPreferences机制。您还可以使用一些公共静态字段。

有关您的问题的更多信息:http://developer.android.com/guide/faq/framework.html#3