Android menu的分类和用法

Menu菜单分为三种options 选项菜单,  context 上下文菜单,pupos弹出菜单

2、新建一个Module项目,在res文件夹下创建一个menu文件夹,在menu里面创建一个Menu resource file的xml文件。

3、然后在xml文件下创建菜单列表

其中android:orderInCategory="3"值列表的优先级别

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/fort_group"
        android:title="字体大小"
        android:orderInCategory="3"
    ></item>
    <item android:id="@+id/fort_color"
        android:title="字体颜色"
        ></item>
    <item android:id="@+id/fort_style"
        android:title="字体样式"
        ></item>
</menu>

4、xml创建菜单的对象

public boolean onCreateOptionsMenu(Menu menu) {
    //先获得菜单填充器的对象
    MenuInflater inflater=getMenuInflater();
    //两个参数,一个是资源id,二个菜单对象
    inflater.inflate(R.menu.mani,menu);
    /*也可以这样写
     getMenuInfater().inflate(R.menu.mani,menu);
     回调是true时说明显示菜单
    */
    return true;

5、代码增加菜单项的方法

/*
可以通过add方法增加菜单项
1、表示大groupId,菜单项分组,如果没有就用Menu.NONE表示
2、菜单项的唯一id,最好用常量来表示
3、菜单项的排列顺序
4、菜单的标题文本
 */
menu.add(Menu.NONE,2,Menu.NONE,"设置字体");
6、对菜单项的操作——第一种方式

//获得itemId和相应的操作,回传值如果是true代表可以操作
public boolean onOptionsItemSelected(MenuItem item) {
    //获得itemID
    int itemId=item.getItemId();
    switch(itemId){
        case R.id.fort_group:
            tvshow.setTextSize(50);break;
        case R.id.fort_color:
            int red= (int) (Math.random()*256);
            int green=(int)(Math.random()*256);
            int blue= (int) (Math.random()*256);
            tvshow.setTextColor(Color.rgb(red,green,blue));
            break;
    }
    return super.onOptionsItemSelected(item);
}
7、 对菜单项的操作——第二种方式

这种方法继承了Activity但是不能在真机上面显示,

继承AppCompatActivity有不能使用onMenuItemSelected的方法,求大神指导。

//获得itemId和相应的操作的第二种方式,注意要让类继承Activity
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    int itemId=item.getItemId();
    if(itemId==R.id.fort_group){
        tvshow.setText("第二种点击方式");
    }
    return super.onMenuItemSelected(featureId, item);
}
8、 对菜单项的操作——第三方式(使用于所有菜单类型)

//先通过menu.findItem的方法获取item
MenuItem item=menu.findItem(R.id.fort_style);
 //添加相对应的监听器
 item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
     @Override
     public boolean onMenuItemClick(MenuItem item) {
         Toast.makeText(MainActivity.this,item.getTitle().toString(),Toast.LENGTH_LONG)
                 .show();
         return false;
     }
 });








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值