在SearchView中搜索后,搜索字词会消失

时间:2013-06-27 14:39:43

标签: android search searchview

我有一项主要活动,我可以启动搜索并转到可搜索的活动。我使用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();
}

谢谢。

1 个答案:

答案 0 :(得分: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);