Android 学习笔记 —— 在 Activity 中添加 Menu 菜单
Menu 菜单的使用
-
编写 Menu 菜单布局。
res 目录下创建 menu 文件夹,创建 Menu resource file 文件并添加 item 项。<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/item" android:title="Item" /> </menu>
-
创建 Menu 菜单。
在 Activity 中重写onCreateOptionsMenu()
方法,通过getMenuInflater()
方法获取 MenuInflater 对象,调用它的inflate()
方法给当前 Activity 创建菜单。
inflate()
方法第一个参数用于指定 menu 菜单的资源文件,第二个参数用于指定将菜单项添加到哪一个 Menu 对象中,直接使用onCreateOptionsMenu()
方法中传入的 menu 参数即可。返回值代表是否显示该 Menu 菜单。public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.my_menu, menu); return true; }
-
定义 Menu 菜单响应事件。
在 Activity 中重写onOptionsItemSelected()
方法,根据 item 的 id 定义相应的点击事件。public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.item: // TODO break; } return flase; }
官方 API 对
onOptionsItemSelected()
方法返回值的描述: boolean Return false to allow normal menu processing to proceed, true to consume it here.
翻译: 返回 false 以允许进行正常菜单处理,返回 true 以在此处使用它。
个人理解: 返回值默认为 flase 表示该方法执行完毕后,点击事件继续向下传递,为 true 时表示方法执行完毕后,点击事件不会再向下一个事件处理方法传递了。