0

我有两个活动MainActivitySearchActivity。从搜索菜单项SearchActivity启动。但是如果我通过单击向上导航项返回到状态丢失,我怎么能回到主活动而不丢失状态。ActionBarViewMainActivityMainActivityMainActivity

我的代码: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);
    }

我的代码:SearchActivity

  @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                return true;
  default:
                return super.onOptionsItemSelected(item);
            }
        }

如何在不重新创建 MainActivity 的情况下从 SearchActivity 返回到 MainActivity。

4

1 回答 1

1

当您从 SearchActivity 返回时,您可以将 MainActivity 的活动启动模式更改为单顶。这不会重新创建活动。在这里查看 更多信息

 @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);
            }
        }              
于 2013-11-08T08:30:42.537 回答