📅  最后修改于: 2023-12-03 15:08:51.384000             🧑  作者: Mango
Android中的工具栏(Menu)提供了一种快速访问应用程序中的功能的方式,而自定义工具栏的选项菜单可以让你设计一个有趣的、符合你应用的外观的菜单栏。 下面我们将如何在Android中自定义工具栏的选项菜单给程序员作介绍。
创建一个XML文件命名为menu.xml,该文件将会放置于res/menu目录下。这个文件成为菜单声明文件 它定义了应用程序这个菜单的样式和功能。它应该有一个根元素menu,该元素应该包含一组item元素,每个元素对应着菜单中的一个选项。
示例代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_search"
android:title="@string/search"
android:showAsAction="always" />
<item
android:id="@+id/action_share"
android:icon="@drawable/ic_share"
android:title="@string/share"
android:showAsAction="always" />
<item
android:id="@+id/action_settings"
android:title="@string/settings"
android:showAsAction="never" />
</menu>
在activity的onCreateOptionsMenu()方法中,便会将在res/menu/ 目录下创建的菜单文件解析、绑定、实例化。
示例代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
其中, getMenuInflater()用于实例化MenuInflater对象,使用实例化的对象将菜单文件加载到Menu对象中。
用户选择菜单项时将会自动调用 activity 的 onOptionsItemSelected() 方法进行相应的操作响应处理。可以根据操作的不同对应着不同的操作。或者,可以调用MenuItem方法获得被点击的菜单项。
示例代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.action_settings:
// 执行设置操作
return true;
case R.id.action_search:
// 执行搜索操作
return true;
case R.id.action_share:
// 执行分享操作
return true;
default:
return super.onOptionsItemSelected(item);
}
}
至此,自定义工具栏的选项菜单已经完成。
本文为程序员介绍了如何在Android中自定义工具栏的选项菜单。通过以上三个步骤,我们能够很容易的创建自己应用的菜单栏并定义操作,帮助我们使应用更加完善。