有一個搜索結果的Activity,在actionbar中有searchView組件。在onCreateOptionsMenu()
自動擴展,並且顯示查詢結果:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
MenuItem searchMenuItem = (MenuItem) menu.findItem(R.id.menu_search);
SearchView searchView = (SearchView)searchMenuItem.getActionView();
searchView.setOnQueryTextListener(this);
searchMenuItem.expandActionView(); // expand the search item
searchView.setQuery(query, false); // hide the keyboard
searchView.clearFocus();
return true;
}
home鍵設置如下:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
實際上等到用戶點擊back或up鍵時,搜索先關閉了,需要在按一遍才能關閉activity,我需要實現的是activity也同時關閉,不知道怎麼辦?
有一種辦法是在SearchView
被OnActionExpandListener
停止時finish()
Activity。
searchMenuItem.setOnActionExpandListener(new OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
finish();
return true;
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
return true;
}
});