如何从ActionBar SearchView启动的搜索活动中正确返回父活动。

时间:2013-11-08 08:08:10

标签: android search android-activity android-actionbar parent

我有两项活动MainActivitySearchActivitySearchActivityActionBar搜索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。

1 个答案:

答案 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);
            }
        }