2

我有一个主要活动,我可以启动搜索并转到可搜索活动。我使用 SearchcView 进行搜索。我在主要活动中也有 onDestroy。

搜索后,当我点击返回按钮返回主要活动时,我仍然可以在操作栏中看到我的搜索词。显然 onDestroy 并没有删除它。我怎样才能让搜索词消失?

主要活动

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.all_stores, menu);

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(false);

    setSubmitButtonEnabled(true);

    return true;
}

@Override
public void onDestroy() {

    super.onDestroy();
    db.close();
}

谢谢你。

4

1 回答 1

3

onCreateOptionsMenu添加,

searchItem = menu.findItem(R.id.action_search);

@Override
public void onBackPressed() {       
if(searchItem.isActionViewExpanded())
    searchItem.collapseActionView();
else
    super.onBackPressed();
}

在您的活动中添加,

@Override
public void onBackPressed() {       
    if(searchItem.isActionViewExpanded())
        searchItem.collapseActionView();
    else
        super.onBackPressed();
}

如果您想定位较低版本,

MenuItemCompat.collapseActionView(searchItem);
MenuItemCompat.isActionViewExpanded(searchItem);
于 2013-12-04T09:31:41.100 回答