С нормальной панелью действия (вам нужно будет найти различные варианты с ABS, не уверен, что мой ответ будет полностью применен к этой библиотеке).
SearchView это виджет, который может быть завышен в меню опций, так что я делаю это надуть меню с помощью XML, содержащего вид действий:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/search_user"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/magnifing_glass"
android:showAsAction="ifRoom|collapseActionView"
android:title="Search Users"/>
</menu>
Далее, при раздувании вида действия, установите прослушиватели и используйте глобальную переменную для сохранения предыдущего поиска.
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search_menu, menu);
MenuItem search = menu.findItem(R.id.search_user);
//Keep a global variable of this so you can set it within the next listener
SearchView user_search = (SearchView) search.getActionView();
user_search.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
global_variable = query;
return true;
}
@Override
public boolean onQueryTextChange(String text) {
return true;
}
});
Наконец, во втором слушателе установите текст глобальной переменной в свой предыдущий запрос, когда расширяется представление действия.
//This is set on the menu item
search.setOnActionExpandListener(new OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// Do something when collapsed
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
user_search.setQuery(global_variable, false);
return true; // Return true to expand action view
}
});