java NavUtils navigateUpFromSameTask()和onSaveInstanceState()
我是安卓开发的新手,我面临着一个问题。 我有一个活动,它包含一个列表片段。点击列表项后,新活动开始。我决定用菜单栏上的Home按钮在儿童活动中进行反向导航
if (NavUtils.getParentActivityName(getActivity()) != null){
((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 安卓.R.id.home:
if (NavUtils.getParentActivityName(getActivity()) != null){
NavUtils.navigateUpFromSameTask(getActivity());
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我还需要将整数值保存到父活动中。所以我重写了onSaveInstanceState()
@Override
protected void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
Log.d("ACTIVITY_STATE", " onSave");
savedInstanceState.putInt(TAG_INT_VAL_SAVED, intVal);
}
但是,当我点击子活动的返回箭头并调用父活动的onCreate方法时,参数Bundle似乎为null,直到下面代码的日志为止
if (savedInstanceState != null){
intVal = savedInstanceState.getInt(TAG_INT_VAL_SAVED);
Log.d("ACTIVITY_STATE", " onSave getting data"); // Never appears at LogCat
} else {
// code to assign intVal as if the Activity was just started
}
我有点困惑,所以我想请你们帮忙。你能告诉我什么时候导航吗?我该怎么做,才能保存intVal?谢谢!
B.t.w.在屏幕旋转时工作正常-成功检索到值
清单如下所示:
<activity
安卓:name=".ListItemActivity"
安卓:label="@string/app_name" >
<meta-data 安卓:name="安卓.support.PARENT_ACTIVITY"
安卓:value=".MyListActivity"/>
</activity>
<activity 安卓:name=".MyListActivity"
安卓:label="@string/app_name">
<intent-filter>
<action 安卓:name="安卓.intent.action.MAIN" />
<category 安卓:name="安卓.intent.category.LAUNCHER" />
</intent-filter>
</activity>
共 (0) 个答案