動的にオプションメニューを変更する
dynamically changing option menu
動的にoption menuを変更する場合、addメソッドやremoveitemメソッドを使いたくなる。
しかしながら、removeitemメソッドを使った後で、addメソッドを使いMenuItemを追加しても、その追加されたMenuItemはMenuの最後尾に配置される。
追加されたMenuItemを任意の位置に配置するコマンドは無いようである。
このため、MenuItem#setVisible()を使うことになる。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem mi;
mi = menu.findItem(R.id.Menu_Next);
if(bDiskFile==true){//必要に応じ
if(mi.isVisible()==false){
mi.setVisible(true);
}
}
else{
if(mi.isVisible()==true){
mi.setVisible(false);
}
}
return super.onPrepareOptionsMenu(menu);
}
addメソッドの第一引数にはint groupIdがある。これは、任意の複数のMenuItemを追加する場合に、それらをグループ化するものである。Java codeでaddメソッドを使って、1個1個MenuItemを追加していく場合に使う。
詳細は次のサイトにsample codeがある。
Options Menu in Android (Code)
xmlでgroupを設定するsampleは次のサイトにある。
Android 奔走記 XML で Menu
0 件のコメント:
コメントを投稿