プログラム最終更新日:2017/07/11ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.BottomNavigationViewでクリックイベントを発生させよう!アンドロイドでアプリ開発を行っているとほとんどの場合一画面だけのアプリにはならず、画面の切替が必要になってくると思います。BottomNavigationViewは画面下部に表示できるメニューで、特にソースコードを書かなくてもカッコのよい遷移アニメーションを自動でつけてくれるイカしたメニューです。今回はこのBottomNavigationView内の各メニューボタンに対するクリックイベント(スマホだからタッチイベントですね)を好きなタイミングで発生させる方法を紹介しますね。BottomNavigationViewでクリックイベントを発生させよう!方法はだいたい3通り1:setSelectedItemId()1:findViewById().performClick()3:getMenu().findItem().setChecked(true)クリックイベント発生のまとめ方法はだいたい3通りBottomNavigationViewのメニューボタンのクリックイベントを発生させる方法についていろいろ調べたところ、クリックイベントを発生させる方法は以下の3つが見つかりました。それぞれ「☆」印にはメニューボタンのID(R.id.~)が入ります。setSelectedItemId(☆)findViewById(☆).performClick()getMenu().findItem(☆).setChecked(true)3つの方法のうち12番は書き方が違うだけで同じ動作をし、残る3についてはまるきり動作が異なるコトがわかりました。12番はこの関数を呼び出したタイミングで実際にクリックイベントが発生するのに対し、3番の「getMenu().findItem(☆).setChecked(true)」は、選んだメニューボタンが押された状態にするだけでクリックイベントは発生しません。ココ注意が必要ですね~。念のため一つずつ見ていきましょう。findViewById(R.id.navigation);navigation.setSelectedItemId(R.id.menu_item);ソースコードの中の色のついているところはそれぞれ自分のxmlで指定したViewのIDを指定してくださいね。このコードを任意のタイミングで呼ぶことでIDで指定したメニューボタンのクリックイベントを発生させることができます。findViewById(R.id.navigation);navigation.findViewById(R.id.menu_item).performClick();2番目の方法は1番目の方法と同じで実際にIDで指定したメニューボタンのクリックイベントが発生します。書き方が違うだけなのであんまり使わないかもしれませんね。findViewById(R.id.navigation);navigation.getMenu().findItem(R.id.menu_item).setChecked(true);3番目の方法はメニューボタンが押されたようになるだけで実際にはクリックイベントは発生しません。「いつ使うの?」と思わずにはいられませんが、例えばアクティブになっているメニューボタンは変えたいけれど、クリックしたときとは別の処理を行いたい場合なんかには使えると思います。クリックイベント発生のまとめ今回はアンドロイドのアプリ開発でBottomNavigationViewを使ったとき、好きなタイミングでクリックイベントを発生させる方法を紹介しました。ぼく自身はけっこう3番目の方法が使えるなと思いました。メニューは動かしたいけどクリックイベントは発生させたくない場合って思ったよりある気がします。書き込むコメントをキャンセルメッセージは承認後に反映されます。承認には数日かかる場合があります。