zoukankan      html  css  js  c++  java
  • Android菜单系列————基础选项菜单(OptionsMenu)

    一、介绍

      选项菜单,在默认显示的位置上,OptionsMenu显示在右上角ActionBar的位置

    二、创建流程

    • 在onCreateOptionsMenu(...)中生成上下文菜单。
    • 在onOptionsItemSelected(...)中响应上下文菜单项

    三、效果

    四、代码

    代码一【通过Menu组件创建菜单】

    1、 在res目录下面创建一个名为menu的包,在menu包里面创建一个menu_basics.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/action_1"
            android:orderInCategory="100"
            android:title="选项一"
            app:showAsAction="never" />
        <item
            android:id="@+id/action_2"
            android:orderInCategory="100"
            android:title="选项二"
            app:showAsAction="never" />
        <item
            android:id="@+id/action_3"
            android:orderInCategory="100"
            android:title="选项三"
            app:showAsAction="never" />
    </menu>

     2、在Java文件中添加下面方法

    //创建菜单,加载我们之前定义的menu_main.xml布局文件
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.menu_basics,menu);
            return true;
        }
    
        //当OptionsMenu被选中的时候处理具体的响应事件
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()){
                case R.id.action_1:
                    Toast.makeText(MenuBasics.this,"选项一",Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.action_2:
                    Toast.makeText(MenuBasics.this,"选项二",Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.action_3:
                    Toast.makeText(MenuBasics.this,"选项三",Toast.LENGTH_SHORT).show();
                    return true;
                default:
                    //do nothing
            }
            return super.onOptionsItemSelected(item);
        }

     代码二【完全通过Java代码实现】

    public class MenuOptions_Java extends AppCompatActivity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            setContentView(R.layout.activity_main);
            super.onCreate(savedInstanceState);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            /**
             * 第一个int类型的group ID参数:代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。
             * 第二个int类型的item ID参数:代表的是项目编号。这个参数非常重要,一个item ID对应一个menu中的选项。在后面使用菜单的时候,就靠这个item ID来判断你使用的是哪个选项。
             * 第三个int类型的order ID参数:代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。
             * 第四个String类型的title参数:表示选项中显示的文字。
             */
            menu.add(1001, 100, 1, "系统菜单");
            menu.add(1001,101,2,"用户菜单");
            menu.add(1001,102,2,"用户菜单");
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case 100:
                    Toast.makeText(MenuOptions_Java.this,"选择了菜单一",Toast.LENGTH_SHORT).show();
                    break;
                case 101:
                    Toast.makeText(MenuOptions_Java.this, "选择了菜单二",Toast.LENGTH_SHORT).show();
                    break;
    
                case 102:
                    Toast.makeText(MenuOptions_Java.this, "选择了菜单三",Toast.LENGTH_SHORT).show();
                    break;
                default:
                    break;
            }
            return super.onOptionsItemSelected(item);
        }
    }
  • 相关阅读:
    iOS 自动续期订阅 恢复购买
    iOS内购恢复购买
    iOS内购自动续订
    iOS苹果内购服务端技术方案
    Spring4.x体系架构
    Linux下MySQL主从复制(Binlog)的部署过程
    Linux下MySQL多实例部署记录
    Linux下MySQL基础及操作语法
    Linux下Nginx基础应用
    Linux下Apache(HTTP)基础知识梳理-运维笔记
  • 原文地址:https://www.cnblogs.com/hahayixiao/p/13655996.html
Copyright © 2011-2022 走看看