当我使用intent从父活动转移到另一个,然后使用操作栏nav返回到parent时,父活动已丢失所有更改和值(作为用户)并返回到默认xml显示我有它。
我的孩子活动OnCreate中有这些:
ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
适当地标记我的父母活动:
android:parentActivityName=".MainActivity"
在活动之间旅行时,我需要做什么才能存储或记住这些变化?
答案 0 :(得分:1)
有几种选择 -
1)使用startActivityForResult()
2)在清单文件中,设置父活动的android:launchMode="singleTop"
希望有所帮助
答案 1 :(得分:1)
在Manifest文件中,你应该像这样设置android:launchMode:
<!-- ACTIVITY -->
<activity
android:name=".activities.MainActivity"
android:configChanges="orientation|screenSize"
android:launchMode="singleTask"
android:screenOrientation="portrait"/>
P.s:在此链接上阅读启动模式: https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en
答案 2 :(得分:0)
单击“导航”按钮时,可能正在创建父项的新实例。一个简单的方法就是完成你的活动,这样就可以简单地恢复后台堆中的任何活动。
这样的事情:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}