• Android-菜单栏实现


    两种菜单实现方式大同小异。

    一、右上角二级菜单(submenu):

    1、布局文件(menu文件夹下创建sub_menu.xml):

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
       <item
           android:id="@+id/school"
           android:title="学校">
           <menu>
               <item
                   android:id="@+id/czdx"
                   android:title="常州大学"></item>
               <item
                   android:id="@+id/njdx"
                   android:title="南京大学"></item>
               <item
                   android:id="@+id/whdx"
                   android:title="武汉大学"></item>
           </menu>
       </item>
       <item
           android:id="@+id/college"
           android:title="院系">
           <menu>
               <item
                   android:id="@+id/computer"
                   android:title="计算机学院"></item>
               <item
                   android:id="@+id/art"
                   android:title="艺术学院"></item>
               <item
                   android:id="@+id/english"
                   android:title="英语学院"></item>
           </menu>
       </item>
    </menu>

    2、业务实现:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //加载 布局实现
        getMenuInflater().inflate(R.menu.sub_menu, menu);
        return super.onCreateOptionsMenu(menu);
    }

    3、选择事件:

    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            String str = null;
            switch(item.getItemId()){
                case R.id.school:
                case R.id.college:
                    str = "一级标签:" + item.getItemId() + "|" + item.toString();
                    break;
                case R.id.czdx:
                case R.id.njdx:
                case R.id.whdx:
                case R.id.english:
                case R.id.art:
                case R.id.computer:
                    str = "二级标签:" + item.getItemId() + "|" + item.toString();
                    break;
            }
            Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
            return super.onOptionsItemSelected(item);
        }

    4、效果如下:

             

    二、快捷菜单(ContextMenu):

    简介:单击界面某元素超过2秒后,弹出一个快捷菜单。

    1、布局文件(menu文件夹下创建context_menu.xml):

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:id="@+id/school"
            android:title="学校">
            <menu>
                <item
                    android:id="@+id/czdx"
                    android:title="常州大学"></item>
                <item
                    android:id="@+id/njdx"
                    android:title="南京大学"></item>
            </menu>
        </item>
        <item
            android:id="@+id/college"
            android:title="院系">
            <menu>
                <item
                    android:id="@+id/computer"
                    android:title="计算机学院"></item>
                <item
                    android:id="@+id/art"
                    android:title="艺术学院"></item>
            </menu>
        </item>
    </menu>

    2、业务实现:

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        menu.setHeaderTitle("快捷菜单");
        menu.add(0, 1, 0,"菜单1");
        menu.add(0, 2, 1,"菜单2");
        //加载 布局实现
        getMenuInflater().inflate(R.menu.context_menu, menu);
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    3、选择事件:

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        String str = null;
        switch(item.getItemId()){
            case R.id.school:
            case R.id.college:
                str = "一级标签:" + item.getItemId() + "|" + item.toString();
                break;
            case R.id.czdx:
            case R.id.njdx:
            case R.id.art:
            case R.id.computer:
                str = "二级标签:" + item.getItemId() + "|" + item.toString();
                break;
        }
        Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
        return super.onContextItemSelected(item);
    }

    4、最后,将快捷菜单注册到界面中的某个控件上:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        Button button = (Button) findViewById(R.id.btn1);
        registerForContextMenu(button);
    }

    5、效果如下,长按按钮,弹出快捷菜单:


  • 相关阅读:
    AC自动机解题记录
    German Collegiate Programming Contest 2018​ A. Attack on Alpha-Zet
    UVa-1152 4 Values Whose Sum Is 0
    2018 宁夏省赛 F. Moving On
    F
    PIL之基础应用
    数字数据转图片
    随机梯度下降实现
    回归分析效果度量
    线性回归分析
  • 原文地址:https://www.cnblogs.com/mengfff/p/6764790.html
Copyright © 2020-2023  润新知