📜  如何在Android中自定义工具栏的选项菜单?(1)

📅  最后修改于: 2023-12-03 15:08:51.384000             🧑  作者: Mango

如何在Android中自定义工具栏的选项菜单?

Android中的工具栏(Menu)提供了一种快速访问应用程序中的功能的方式,而自定义工具栏的选项菜单可以让你设计一个有趣的、符合你应用的外观的菜单栏。 下面我们将如何在Android中自定义工具栏的选项菜单给程序员作介绍。

第一步:在Menu文件夹下创建菜单文件

创建一个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中实例化菜单和操作

在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中自定义工具栏的选项菜单。通过以上三个步骤,我们能够很容易的创建自己应用的菜单栏并定义操作,帮助我们使应用更加完善。