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