简述创建选项菜单的步骤。
时间: 2023-08-02 18:10:28 浏览: 57
创建选项菜单的步骤如下:
1. 在布局文件中添加一个 Menu 组件。
2. 创建一个 menu 文件来定义菜单项。
3. 在 Activity 或 Fragment 中重写 onCreateOptionsMenu() 方法,将 menu 文件加载到选项菜单中。
4. 在 Activity 或 Fragment 中重写 onOptionsItemSelected() 方法,处理菜单项点击事件。
具体来说,可以按照以下步骤实现:
1. 在布局文件中添加一个 Menu 组件:
```xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
android:showAsAction="never" />
</menu>
```
2. 创建一个 menu 文件来定义菜单项:
在 res/menu 目录下创建一个名为 menu_main.xml 的文件,并添加以下代码:
```xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_item1"
android:icon="@drawable/ic_menu_item1"
android:title="@string/menu_item1_title"/>
<item
android:id="@+id/menu_item2"
android:icon="@drawable/ic_menu_item2"
android:title="@string/menu_item2_title"/>
<item android:id="@+id/menu_item3"
android:title="@string/menu_item3_title"
android:icon="@drawable/ic_menu_item3"
android:showAsAction="ifRoom|withText">
<menu>
<item android:id="@+id/submenu_item1"
android:title="@string/submenu_item1_title"/>
<item android:id="@+id/submenu_item2"
android:title="@string/submenu_item2_title"/>
</menu>
</item>
</menu>
```
3. 在 Activity 或 Fragment 中重写 onCreateOptionsMenu() 方法,将 menu 文件加载到选项菜单中:
```java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
```
4. 在 Activity 或 Fragment 中重写 onOptionsItemSelected() 方法,处理菜单项点击事件:
```java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
```