読者です 読者をやめる 読者になる 読者になる

Activity.onPrepareOptionsMenu

onPrepareOptionsMenuは、メニューボタン(3点リーダアイコンの)が押された時に発生するハンドラで、メニュー表示前の準備段階の処理を行える・・・。

Activity | Android Developers

最初のアイテムの選択によって以降のメニューアイテムの表示/非表示切り替えができるようにしてみる・・・。

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を切り替える・・・。

f:id:BG1:20170308082611p:plain

右上のメニューボタンを押すと、

f:id:BG1:20170308082651p:plain

ChangeとA1~A3が表示される・・・。B1~B3は非表示・・・。
ここでChangeを選択すると、

f:id:BG1:20170308082746p:plain

閉じるが、再びメニューボタンを押すと、

f:id:BG1:20170308083112p:plain

ChangeとB1~B3に切り替わっている・・・。

B1とかを選択しても、

f:id:BG1:20170308083320p:plain

再びメニューボタンを押すと、切り替わらずにB1~B3のまま・・・。
でも、Changeを押すと、

f:id:BG1:20170308083500p:plain

次にメニューボタン押した時はA1~A3に切り替わっている・・・。

Sample/android/Activity/onPrepareOptionsMenu/src/Activity at master · bg1bgst333/Sample · GitHub