博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android Menu 笔记
阅读量:7091 次
发布时间:2019-06-28

本文共 3855 字,大约阅读时间需要 12 分钟。

菜单是应用中常见的用户组件。本文介绍如何在布局文件和代码中添加menu,submenu以及在代码中添加的方法。

参考链接

https://developer.android.com/guide/topics/ui/menus.html?hl=zh-cn

http://www.cnblogs.com/smyhvae/p/4133292.html

布局文件

放置了一个start选项,以及一个set选项,并在set里面设置了2个子菜单set1和set2.

main_menu.xml

清单文件

AndroidManifest.xml

MainActivity.java

重写onCreateOptionsMenu (Menu menu)函数,并调用inflate(R.menu.main_menu, menu)。这样menu的布局文件中的空间才会显示出来。

重写onOptionsItemSelecte()对菜单的点击事件进行监听。

addSubMenu()添加子菜单。并调用add()函数在子菜单中添加选项。

调用menu.add()在菜单中添加一个选项。

package com.example.menutest;import android.graphics.Bitmap;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.SubMenu;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    private static final int CONF_ITEM = Menu.FIRST;    private static final int CONF_ITEM_1= Menu.FIRST + 1;    private static final int CONF_ITEM_2 = Menu.FIRST + 2;    private static final int STOP_ITEM = Menu.FIRST + 3;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    public boolean onCreateOptionsMenu (Menu menu) {        int groupId = 0;        /*         * 添加子菜单,并在子菜单中添加选项         * addSubMenu(final int groupId, final int itemId, int order, final CharSequence title);         * groupId: 组ID,有时候会将菜单放在同一个组中,同时对组进行相关的设置。         * itemId:  选项的id。点击选项的时候会根据这个来进行区分。         * order:   顺序         * title:   选项的标题         */        SubMenu sub1 = menu.addSubMenu(groupId, CONF_ITEM, Menu.NONE, "CONF");        /*         * 为子菜单中添加选项。         * add(int groupId, int itemId, int order, CharSequence title);         * groupId: 组ID,有时候会将菜单放在同一个组中,同时对组进行相关的设置。         * itemId:  选项的id。点击选项的时候会根据这个来进行区分。         * order:   顺序         * title:   选项的标题         */        sub1.add(groupId, CONF_ITEM_1, Menu.NONE, "CONF_1");        sub1.add(groupId, CONF_ITEM_2, Menu.NONE, "CONF_2");        // 添加一个菜单选项        menu.add(groupId + 1, STOP_ITEM, Menu.NONE, "STOP");        MenuInflater inflater = getMenuInflater();        inflater.inflate(R.menu.main_menu, menu);        return super.onCreateOptionsMenu(menu);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {            case R.id.start:                Toast.makeText(getBaseContext(), "start", Toast.LENGTH_SHORT).show();                break;            case R.id.set:                Toast.makeText(getBaseContext(), "setting", Toast.LENGTH_SHORT).show();                break;            case R.id.set1:                Toast.makeText(getBaseContext(), "set 1", Toast.LENGTH_SHORT).show();                break;            case R.id.set2:                Toast.makeText(getBaseContext(), "set 2", Toast.LENGTH_SHORT).show();                break;            case STOP_ITEM:                Toast.makeText(getBaseContext(), "stop", Toast.LENGTH_SHORT).show();                break;            case CONF_ITEM:                Toast.makeText(getBaseContext(), "conf", Toast.LENGTH_SHORT).show();                break;            case CONF_ITEM_1:                Toast.makeText(getBaseContext(), "conf 1", Toast.LENGTH_SHORT).show();                break;            case CONF_ITEM_2:                Toast.makeText(getBaseContext(), "conf 2", Toast.LENGTH_SHORT).show();                break;            default:                break;        }        return super.onOptionsItemSelected(item);    }}

Tony Liu

2017-3-16, Shenzhen

你可能感兴趣的文章
利用Field获取图片
查看>>
android使用vitamio
查看>>
C++的强制类型转换
查看>>
android基础学习一:ImageView修改颜色灰度
查看>>
go语言学习--go中godep的使用小结
查看>>
两个矩阵相乘的源程序
查看>>
ActiveMQ 控制面板信息含义
查看>>
【Flatten Binary Tree to Linked List】cpp
查看>>
大一ACM心得总结
查看>>
Code Force 429B Working out【递推dp】
查看>>
解决win7 64位操作系统下安装PL/SQL后连接报错问题: make sure you have the 32 bits oracle client installed...
查看>>
nonatomic,assign,copy,retain的区别
查看>>
nginx,linux压力测试工具webbench
查看>>
进程学习第一课--基本操作
查看>>
java1.8--OptionalInt,OptionalDouble,OptionalLong类
查看>>
Wireshark网络分析实战笔记(三)基本信息统计工具的使用方法
查看>>
mysql 经常使用命令整理总结
查看>>
【JAVA笔记——器】Spring面向切面编程 Aspect Oriented Programming with Spring
查看>>
Oracle监听静态注册和动态注册
查看>>
RHEL7-Samba共享测试
查看>>