zoukankan      html  css  js  c++  java
  • Android studio 菜单(Menu)2

    3.SubMenu(子菜单)

    所谓的子菜单只是在<**item**>中又嵌套了一层<**menu**>而已

    代码示例:

    实现代码:

    编写子菜单的Menu文件:menu_sub.xml:

    复制代码
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/submenu" android:title="子菜单使用演示~">
            <menu>
                <group android:checkableBehavior = "none">
                    <item android:id="@+id/one" android:title = "子菜单一"/>
                    <item android:id="@+id/two" android:title = "子菜单二"/>
                    <item android:id="@+id/three" android:title = "子菜单三"/>
                </group>
            </menu>
        </item>
    </menu>
    复制代码

    接着我们改下上面上下文菜单的两个方法的内容,换上下面的代码:

    复制代码
    public void onCreateContextMenu(ContextMenu menu, View v,
                                        ContextMenu.ContextMenuInfo menuInfo) {
            //子菜单部分:
            MenuInflater inflator = new MenuInflater(this);
            inflator.inflate(R.menu.menu_sub, menu);
            super.onCreateContextMenu(menu, v, menuInfo);
    }
    
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
                case R.id.one:
                    Toast.makeText(MainActivity.this,"你点击了子菜单一",Toast.LENGTH_SHORT).show();
                    break;
                case R.id.two:
                    item.setCheckable(true);
                    Toast.makeText(MainActivity.this,"你点击了子菜单二",Toast.LENGTH_SHORT).show();
                    break;
                case R.id.three:
                    Toast.makeText(MainActivity.this,"你点击了子菜单三",Toast.LENGTH_SHORT).show();
                    item.setCheckable(true);
                    break;
            }
        return true;
    }
    复制代码

    4.PopupMenu(弹出式菜单)

    一个类似于PopupWindow的东东,他可以很方便的在指定View下显示一个弹出菜单,而且 他的菜单选项可以来自于Menu资源,下面我们写个简单的例子来使用下这个东东~

    使用示例:

     

    实现代码:

    菜单资源文件:menu_pop.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/lpig" android:title="小猪" />
        <item android:id="@+id/bpig" android:title="大猪" />
    </menu>

    在布局中添加一个按钮,然后添加点击事件:

    MainActivity.java:

    复制代码
    btn_show_menu.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    PopupMenu popup = new PopupMenu(MainActivity.this,btn_show_menu);
                    popup.getMenuInflater().inflate(R.menu.menu_pop, popup.getMenu());
                    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                        @Override
                        public boolean onMenuItemClick(MenuItem item) {
                            switch (item.getItemId()){
                                case R.id.lpig:
                                    Toast.makeText(MainActivity.this,"你点了小猪~",
                                    Toast.LENGTH_SHORT).show();
                                    break;
                                case R.id.bpig:
                                    Toast.makeText(MainActivity.this,"你点了大猪~",
                                    Toast.LENGTH_SHORT).show();
                                    break;
                            }
                            return true;
                        }
                    });
                    popup.show();
                }
            });
    复制代码
  • 相关阅读:
    LeetCode 40. 组合总和 II(Combination Sum II)
    LeetCode 129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers)
    LeetCode 60. 第k个排列(Permutation Sequence)
    LeetCode 47. 全排列 II(Permutations II)
    LeetCode 46. 全排列(Permutations)
    LeetCode 93. 复原IP地址(Restore IP Addresses)
    LeetCode 98. 验证二叉搜索树(Validate Binary Search Tree)
    LeetCode 59. 螺旋矩阵 II(Spiral Matrix II)
    一重指针和二重指针
    指针的意义
  • 原文地址:https://www.cnblogs.com/1329197745a/p/14905773.html
Copyright © 2011-2022 走看看