• Android Studio-创建Menu菜单或多级菜单


    大多APP都会在右上角有一个菜单项,点击会打开各各菜单项,这样可以节省很多的空间。

    1:首先在res文件夹下,也就是layout同级目录下新建文件夹命名为menu,再右击新建menu的xml文件:

    右击“res"选择“Android Resource Directory"新文件夹emnu,然后右击“emnu"选择“Menu resource file“新建菜单xml文件。

    2:菜单xml文件代码:<item></item>为一项,如果有是多级菜单就在<item></itme>内再加<menu><item></item></menu>即可。

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:title="ListVies效果"  android:id="@+id/list_view">
            <menu>
                <item android:title="垂直标准"  android:id="@+id/list_view_vertical_stander"/>
                <item android:title="垂直反向"  android:id="@+id/list_view_vertical_reverse"/>
                <item android:title="水平标准"  android:id="@+id/list_view_horizontal_stander"/>
                <item android:title="水平反向"  android:id="@+id/list_view_horizontal_reverse"/>
            </menu>
        </item>
        <item android:title="GridView效果" android:id="@+id/grid_view">
            <menu>
                <item android:title="垂直标准"  android:id="@+id/grid_view_vertical_stander"/>
                <item android:title="垂直反向"  android:id="@+id/grid_view_vertical_reverse"/>
                <item android:title="水平标准"  android:id="@+id/grid_view_horizontal_stander"/>
                <item android:title="水平反向"  android:id="@+id/grid_view_horizontal_reverse"/>
            </menu>
        </item>
        <item android:title="瀑布流效果"  android:id="@+id/stagger_view">
            <menu>
                <item android:title="垂直标准"  android:id="@+id/stagger_view_vertical_stander"/>
                <item android:title="垂直反向"  android:id="@+id/stagger_view_vertical_reverse"/>
                <item android:title="水平标准"  android:id="@+id/stagger_view_horizontal_stander"/>
                <item android:title="水平反向"  android:id="@+id/stagger_view_horizontal_reverse"/>
            </menu>
        </item>
    </menu>

    3:然后是主事件的重要代码,这里我是MainActivity.java,看着代码多是我建的菜单项多,其实很简单,就是重写了onCreateOptionsMenu和onOptionsItemSelected两个方法。

    onCreateOptionsMenu:就是加载菜单项的

    onOptionsItemSelected:是根据id找到客户点击的是哪个菜单项的。

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            //加载建好的菜单xml文件
            getMenuInflater().inflate(R.menu.menu,menu);
            return super.onCreateOptionsMenu(menu);
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            //拿到菜单每项id,然后 switch判断具体是哪个菜单项,然后写点击后的具体操作
            int itemId=item.getItemId();
            switch (itemId){
                case R.id.list_view_vertical_stander:
                    Toast.makeText(MainActivity.this,"点击了ListView垂直标准菜单项",Toast.LENGTH_LONG).show();
                    break;
                case R.id.list_view_vertical_reverse:
                    Toast.makeText(MainActivity.this,"点击了ListView垂直反向菜单项",Toast.LENGTH_LONG).show();
                    break;
                case R.id.list_view_horizontal_stander:
                    Toast.makeText(MainActivity.this,"点击了ListView水平标准菜单项",Toast.LENGTH_LONG).show();
                    break;
                case R.id.list_view_horizontal_reverse:
                    Toast.makeText(MainActivity.this,"点击了ListView水平反向菜单项",Toast.LENGTH_LONG).show();
                    break;
                case R.id.grid_view_vertical_stander:
                    break;
                case R.id.grid_view_vertical_reverse:
                     break;
                case R.id.grid_view_horizontal_stander:
                    break;
                case R.id.grid_view_horizontal_reverse:
                    break;
                case R.id.stagger_view_vertical_stander:
                    break;
                case R.id.stagger_view_vertical_reverse:
                     break;
                case R.id.stagger_view_horizontal_stander:
                    break;
                case R.id.stagger_view_horizontal_reverse:
                    break;
    
            }
            return super.onOptionsItemSelected(item);
        }

      

  • 相关阅读:
    POJ 2240 Arbitrage spfa 判正环
    POJ 3259 Wormholes spfa 判负环
    POJ1680 Currency Exchange SPFA判正环
    HDU5649 DZY Loves Sorting 线段树
    HDU 5648 DZY Loves Math 暴力打表
    HDU5647 DZY Loves Connecting 树形DP
    CDOJ 1071 秋实大哥下棋 线段树
    HDU5046 Airport dancing links 重复覆盖+二分
    HDU 3335 Divisibility dancing links 重复覆盖
    FZU1686 神龙的难题 dancing links 重复覆盖
  • 原文地址:https://www.cnblogs.com/chunshu/p/10295476.html
Copyright © 2020-2023  润新知