Options menu选项菜单

创建选项菜单的核心步骤:

1.在res下新建menu文件夹,右键new一个Anderoid resource directory创建menu文件夹

2.在menu文件夹下创建xml文件,右键NEW一个 Menu resource file文件

3.在问价夹下,写子条目

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/one"
        android:title="listView"
        app:showAsAction="never"></item>
    <item
        android:id="@+id/two"
        android:title="GridView"
        app:showAsAction="never"></item>
    <item
        android:id="@+id/three"
        android:title="瀑布流"
        app:showAsAction="never"></item>
</menu>
4.

  (1) 重写Activity的onCreateOptionMenu(Menu menu)方法,当菜单第一次被加载时调用

(2)调用Menu 的add( )方法添加菜单项(MenuItem),同时可以调用MenuItem的setIcon()方法为菜单项设置图标(注:Android 3.0之后,即使添加了图标也不会显示)

(3)重写Activity的OptionsItemSelected(MenuItem item)来响应菜单项(MenuItem)的点击事件

来看一下具体的代码实现:

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.item, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int itemId = item.getItemId();
        switch (itemId) {
            case R.id.one:
                //listView
                re.setLayoutManager(new LinearLayoutManager(MainActivity.this));
                break;
            case R.id.two:
                //gridview
                re.setLayoutManager(new GridLayoutManager(MainActivity.this,2));
                break;
            case R.id.three:
                //流失布局
                re.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.HORIZONTAL));
                break;
        }
        return super.onOptionsItemSelected(item);
    }
5.如果想让MenuItem变成 ActionBar的形式,可以修改res/menu/main.xml中的 android:showAsAction属性,它的属性值一共有下面几种:

1.其中,ifRoom表示:如果有空间,就显示出来。withText表示:只显示文本(如果配了图标的话)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值