検索ビューが開いているかどうかにかかわらず、ブール値を設定するコードがあります。
MenuItemCompat.setOnActionExpandListener(action_search, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item){
isSearch = true;
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item){
isSearch = false;
return true;
}
});
できます。私はそれが反応する方法に満足しています。ただし、非推奨として表示され、setOnActionExpandListenerに警告が表示されます。
Android.support.v4.view.MenuItemCompat.setOnActionExpandListenerは廃止されました
提案?
_
Android.support.v4.view.MenuItemCompat.setOnActionExpandListener
_は廃止されました
はい_MenuItemCompat.setOnActionExpandListener
_このメソッドはAPIレベル26.1.0で廃止されました。
提案?
MenuItem.setOnActionExpandListener(MenuItem.OnActionExpandListener)
を直接使用します。
_MenuItemCompat.OnActionExpandListener
_このメニュー項目で、関連するアクションview
が展開または縮小されたときに通知されます。 _menu item
_は、フラグ_SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
_を使用してアクションview
を展開または縮小するように構成する必要があります。
サンプルコード
_MenuItem item = menu.findItem(R.id.action_order);
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem menuItem) {
isSearch = true;
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem menuItem) {
isSearch = false;
return true;
}
});
_
このインターフェースはAPIレベル26.1.0で廃止されました。
の代わりに MenuItemCompat.OnActionExpandListener
使用する MenuItem.OnActionExpandListener
直接。
サンプル:
MenuItem menuItemSearch = menu.findItem(R.id.action_search);
menuItemSearch.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem menuItem) {
isSearch = true;
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem menuItem) {
isSearch = false;
return true;
}
});
ボーナス
OnQueryTextListener
とOnCloseListener
の設定
MenuItem menuItemSearch = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) menuItemSearch.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
//Do something
return false;
}
@Override
public boolean onQueryTextChange(String s) {
return false;
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
// do something
return false;
}
});