📅  最后修改于: 2023-12-03 15:08:33.186000             🧑  作者: Mango
Android 中的选项菜单是指位于屏幕上方的菜单项,用于提供应用程序相关操作的快速访问。这里是一些步骤来实现选项菜单。
使用 res > menu
目录下的 XML 文件来定义选项菜单。
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
android:showAsAction="never" />
</menu>
要显示选项菜单,使用 onCreateOptionsMenu()
方法。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
在这个例子中,我们反序列化 menu/main.xml
资源到 Menu
对象中并返回 true
告诉系统菜单已经创建。
当菜单上的项目被选择时要采取某些操作,可以通过重写 onOptionsItemSelected()
方法来实现。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
// Do something
return true;
}
return super.onOptionsItemSelected(item);
}
在这个例子中,我们检查被点击的项的 ID 是否 R.id.action_settings
,如果是,将执行相关操作。如果 ID 不是 R.id.action_settings
,则调用父类的 onOptionsItemSelected()
方法。
如果在屏幕上没有足够的空间来显示所有选项,Android 将自动显示溢出菜单。这可以通过以下两种方式实现:
showAsAction
属性到 XML。<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
android:icon="@drawable/ic_menu_settings"
android:showAsAction="always" /> // 这个属性将菜单项放在工具栏上
<item
android:id="@+id/action_about"
android:title="@string/action_about"
android:icon="@drawable/ic_menu_about" />
</menu>
可以通过使用 MenuItemCompat
类的静态方法 setShowAsAction()
,将选项菜单项显示在工具栏上。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem settingsItem = menu.findItem(R.id.action_settings);
MenuItemCompat.setShowAsAction(settingsItem, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
return true;
}
在这个例子中,我们通过 menu.findItem(R.id.action_settings)
查找 R.id.action_settings
菜单项,然后将 MenuItemCompat.SHOW_AS_ACTION_ALWAYS
作为参数传递给 MenuItemCompat.setShowAsAction()
方法。
以上就是实现选项菜单的全部内容。参考以上步骤,轻松实现选项菜单,提高应用程序的易用性和用户体验。