如何不删除子活动并返回父活动?

时间:2016-02-09 22:39:02

标签: android android-activity

我要做的是将所有数据保存在子活动中并返回父活动。

换句话说,就堆栈结构而言,应该保留位于堆栈结构顶部的子活动,并返回到父活动。

提前感谢您的帮助

3 个答案:

答案 0 :(得分:1)

您可以使用的一种方法是使用startActivityForResult()启动子活动。然后,一旦子活动关闭,数据将传递回父活动。

如果您希望使用与以前相同的数据再次启动子活动,则可以检查父活动是否包含先前结果中的任何数据,并将其解析为intent中的新子活动。

ParentActivity

String mData = null; //this goes above the parent's onCreate method, using a string as an example


//this is where you start the child activity
Intent intent = new Intent(context, ChildActivity.class);
if(mData != null) {
    intent.putExtra("MyData", mData);
}

startActivityForResult(intent, mRequestCode);

ChildActivity

onCreate...

    if(getIntent().getStringExtra("MyData") != null) {
        //handle restoring the child activity to its previous state
    }

在您的父活动中,您甚至可以删除if语句,因为子活动会检查发送的数据是否为空。

答案 1 :(得分:0)

一个时刻只能有一个活动活动。如果需要保存状态,请将其序列化为SharedPreferences或数据库

答案 2 :(得分:0)

我建议使用Fragment而不是activity。我认为这比使用活动更好。