android studio 逆向传值 之一 选项菜单(optionmenu)

最近在做一个东西用到了各个activity之间进行数据传递,但其中用的东西对我来说也都是新的,所以把一个东西拆开写,一方面备忘,另一方面可能有些人也用得到,我也会把其中遇到的坑也写一下。

整个这个demo一共包含以下几部分:

1、optionmenu;
2、activity之间跳转;
3、radiobutton android:checked="true"(选中);
4、edittext cityID.setVisibility(EditText.VISIBLE)(设定可见);
5、switch;
6、各activity之间数据传送。

今天先写第一部分:选项菜单(optionmenu)

加载菜单有两种方法,

1、编写菜单XML文件,调用: getMenuInflater().inflate(R.menu.menu_main, menu);加载菜单 2、通过代码动态添加,onCreateOptionsMenu的参数menu,调用add方法添加 菜单,add(菜单项的组号,ID,排序号,标题)。

关键步骤是重写两个方法:

  • public boolean onCreateOptionsMenu(Menu menu):调用OptionMenu,在这里完成菜单初始化
  • public boolean onOptionsItemSelected(MenuItem item):菜单项被选中时触发,这里完成事件处理

详细操作:

1、res目录上右键新建,选择资源文件

 2、再在资源类型中选择menu,文件夹名称自动变成menu。

3、在menu上右键,新建一个菜单资源文件。

 4、编辑xml文件。示例代码如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:title="设置"
        android:id="@+id/setting"/>
    <item
        android:title="保存"
        android:icon="@mipmap/ic_launcher"
        android:id="@+id/save"/>
</menu>

5、MainActivity.java(全屏是:Fullscreenactivity.java)重写两方法:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //加载资源菜单
        getMenuInflater ().inflate (R.menu.menu,menu);  //第一个参数是创建的menu的名字
        return true;  //要return true 才会显示
    }
    //选中Menu时触发事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId ()){            //获取Id
            case R.id.save:
                Toast.makeText (this,"保存成功",Toast.LENGTH_LONG).show ();
                break;
            case  R.id.setting:
                Toast.makeText (this,"设置",Toast.LENGTH_LONG).show ();
                break;
                    }
        return super.onOptionsItemSelected (item);
    }

 模拟器显示结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kim5659

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值