ActionBarのメニュー項目を動的に無効化、非表示、追加/削除する方法はありますか?たとえば、ユーザーがアクティビティ内の有効な電話番号を入力するまで、アクションは無効になります。ActionBarのアクション/メニュー項目の動的コントロール
私はアクションバーAPIの任意の有用な方法を見つけることができませんでした、唯一の方法は、アクションバーのカスタムビューを使用しているようです。そのメニュー項目をリフレッシュするためにアクションバーを伝えるために
ActionBarのメニュー項目を動的に無効化、非表示、追加/削除する方法はありますか?たとえば、ユーザーがアクティビティ内の有効な電話番号を入力するまで、アクションは無効になります。ActionBarのアクション/メニュー項目の動的コントロール
私はアクションバーAPIの任意の有用な方法を見つけることができませんでした、唯一の方法は、アクションバーのカスタムビューを使用しているようです。そのメニュー項目をリフレッシュするためにアクションバーを伝えるために
そして/無効にメニュー項目を有効にする:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item= menu.findItem(R.id.men_1);
//depending on your conditions, either enable/disable
item.setEnabled(false);
super.onPrepareOptionsMenu(menu);
return true;
}
を、あなたが持っているアクションバー非表示にする:
getActionBar().hide();
別のオプション:アクティビティにメニューを格納するフィールドがあります。 。
class MyActivity extends ActionBarActivity {
Menu actionBar;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
actionBar = menu;
return true;
}
//Possible usage
void showActionBar1() {
getMenuInflater().inflate(R.menu.menu_1, actionBar);
actionBar.findItem(R.id.menu_1_btn_1).setOnMenuItemClickListener();
}
void showActionBar2() {
getMenuInflater().inflate(R.menu.menu_2, actionBar);
...
}
void clearActionBar() {
if (actionBar != null) actionBar.clear();
}
'onPrepareOptionsMenu'は'返す必要があります。この方法で、それはgetMenuInflaterを呼び出すことが可能です()あなたは
だから、この活動にしたいどこからでも)((膨らませる)とmenu.clear、それは次のようになりますboolean'値の場合は、メニューを表示するためにはtrueを返さなければなりません。 falseを返すと表示されません。 –
あなたは[ 'supportInvalidateOptionsMenu()']あなたが使用する必要がありますActionBarActivity'サポートライブラリと 'を使用している場合(http://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html# supportInvalidateOptionsMenu%28%29) –