androidnerd
androidnerd

Reputation: 209

Make search term disappear after search in SearchView

I have a main activity that I can initiate a search and go to searchable activity. I use SearchcView to conduct the search. I also have onDestroy in the main activity.

After a search, when I hit Back button to go back to the main activity, I can still see my search term in the action bar. Apparently the onDestroy doesn't remove that. How can I make the search term go away?

Main Activity

@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();
}

Thank you.

Upvotes: 2

Views: 580

Answers (1)

yajnesh
yajnesh

Reputation: 2129

In onCreateOptionsMenu add,

searchItem = menu.findItem(R.id.action_search);

@Override
public void onBackPressed() {       
if(searchItem.isActionViewExpanded())
    searchItem.collapseActionView();
else
    super.onBackPressed();
}

In your Activity add,

@Override
public void onBackPressed() {       
    if(searchItem.isActionViewExpanded())
        searchItem.collapseActionView();
    else
        super.onBackPressed();
}

If you want to target lower versions,

MenuItemCompat.collapseActionView(searchItem);
MenuItemCompat.isActionViewExpanded(searchItem);

Upvotes: 3

Related Questions