2

アクションバーに 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;
}

ホームボタンは次のように設定されています。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        finish();
        break;
    default:
        break;
    }
    return super.onOptionsItemSelected(item);
}

ただし、ユーザーが [戻る] または [上へ] ボタンを押すと、検索が最初に閉じられ、次にもう一度押す必要があります。アクティビティを閉じます。アクティビティをすぐに終了させるにはどうすればよいですか?

4

1 に答える 1

2

できることの 1 つはfinish()、を実装することで が折りたたまれActivityた直後です。SearchViewOnActionExpandListener

searchMenuItem.setOnActionExpandListener(new OnActionExpandListener() {
  @Override
  public boolean onMenuItemActionCollapse(MenuItem item) {
    finish();
    return true;      
  }
  @Override
  public boolean onMenuItemActionExpand(MenuItem item) {  
    return true;      
  }
});
于 2013-02-28T23:02:45.960 に答える