onPrepareOptionsMenuは、メニューボタン(3点リーダアイコンの)が押された時に発生するハンドラで、メニュー表示前の準備段階の処理を行える・・・。
最初のアイテムの選択によって以降のメニューアイテムの表示/非表示切り替えができるようにしてみる・・・。
res/menu/main.xmlで、
メニュー切り替えアイテムmenu_changeと、切り替える対象となるアイテムmenu_item_a1~menu_item_b3まで用意・・・。
strings.xmlは、
こんな感じ・・・。
MainActivity.javaで、
定数でMENU_TYPE_AとMENU_TYPE_Bを定義し、menuType変数で切り替える・・・。
onCreateOptionsMenuでは、
最初ここに来るので、B1~B3を非表示にすることで、ChangeとA1~A3だけ表示されるようにする・・・。
onPrepareOptionsMenuでは、
menuTypeがMENU_TYPE_Aの時は、itemB1~itemB3を非表示、itemA1~itemA3を表示・・・。
MENU_TYPE_Bの時は、itemA1~itemA3を非表示、itemB1~itemB3を表示・・・。
onOptionsItemSelectedでmenu_changeなら、menuTypeを切り替える・・・。
右上のメニューボタンを押すと、
ChangeとA1~A3が表示される・・・。B1~B3は非表示・・・。
ここでChangeを選択すると、
閉じるが、再びメニューボタンを押すと、
ChangeとB1~B3に切り替わっている・・・。
B1とかを選択しても、
再びメニューボタンを押すと、切り替わらずにB1~B3のまま・・・。
でも、Changeを押すと、
次にメニューボタン押した時はA1~A3に切り替わっている・・・。
Sample/android/Activity/onPrepareOptionsMenu/src/Activity at master · bg1bgst333/Sample · GitHub