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 に答える