如何使用1 Intent在活动之间传输?

时间:2014-09-04 12:18:01

标签: android android-intent

我正在使用Xamarin开发android程序。 我的应用程序有许多不同的活动,他们通过使用例如以下代码将数据传递给对方:

Intent myIntent = new Intent(this, typeof(ViewAccountActivity));
myIntent.PutExtra("loginedcustomer", JsonConvert.SerializeObject(loginedCustomer));
StartActivity(myIntent);

然后通过

检索此数据
loginedCustomer = JsonConvert.DeserializeObject<Customer>(Intent.GetStringExtra("loginedcustomer"));

现在我的问题是,对于每次转换到另一个活动,我必须制作意图并放置数据并启动它,这意味着我必须检索数据,然后再次放入并开始我的新意图。 有没有更简单的方法来做到这一点? 喜欢使用一个意图,只改变它的目标?(在构造函数中) 谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用Application类跨多个活动访问同一个对象。

public class TestApplication extends Application {

    public TempClass tempClass;

    public TestApplication () {
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate() { 
        // TODO Auto-generated method stub
        super.onCreate();
    }

    public TempClass getTempClass() {
        return tempClass;
    }

    public void setTempClass(TempClass tempClass) {
        this.tempClass  = tempClass;
    }
}

现在进入您的活动:

//after setContentView
testAppObj = (TestApplication) getApplication();
testAppObj.setTempClass(myTempClassObj);

//retrieve as:
TempClass obj = testAppObj.getTempClass();

希望这有帮助。

P.S: 您必须在清单文件中注册Application类,就像注册活动一样:

<application
        android:name="com.pkg.test.TestApplication " />