我有两项活动MainActivity
和SearchActivity
。 SearchActivity
从ActionBar
搜索View
菜单项启动MainActivity
。但如果我通过单击向上导航项回到MainActivity
MainActivity
状态丢失,我怎么能回到主要活动而不会失去 @Override
public boolean onPrepareOptionsMenu(Menu menu) {
// If the nav drawer is open, hide action items related to the content view
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerLinear );
menu.findItem(R.id.action_websearch).setVisible(!drawerOpen);
SearchItem= menu.findItem(R.id.action_search);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) SearchItem.getActionView();
searchView.setQueryRefinementEnabled(true);
searchView.setSubmitButtonEnabled(true);
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
return super.onPrepareOptionsMenu(menu);
}
的状态。
我的代码:MainActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我的代码:SearchActivity
{{1}}
如何在不重新创建MainActivity的情况下从SearchActivity返回MainActivity。
答案 0 :(得分:1)
从SearchActivity返回时,您可以将MainActivity的活动启动模式更改为单顶。这不会重新创建活动。查看here了解详情
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
startActivity(new Intent(this, MainActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)//updated
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
);
}
});
return true;
default:
return super.onOptionsItemSelected(item);
}
}