Android菜单optionMenu(选择菜单)的实现


        optionMenu(选择菜单)是Android几种菜单中最为常见的一种,具体实现对于新手来说也非常容易上手,这里就optionMenu的实现大体描述如下:

       Java代码中动态设置:

              复写Activity父类中的onCreateOptionMenu(Menu menu)方法,然后通过Menu的add方法来添加菜单进去。

       通过xml静态设置 :

             使用菜单布局填充器泵和菜单布局相关联.

      设置菜单项点击事件:onOptionsItemSelected(MenuItem item)

     OptionMenu的简单实现代码如下:

            java代码中:

public class MainActivity extends AppCompatActivity {

    private TextView mTextView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }
    private void initView() {
        mTextView = (TextView) findViewById(R.id.optionMenuText);
    }
    //重载onCreateOptionsMenu(Menu menu)方法,
    //并在此方法中添加菜单项,最后返回true,如果false,菜单则不会显示
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //1.布局中添加
        getMenuInflater().inflate(R.menu.optionmenu_item,menu);
        /**
         * add()方法的四个参数,依次是:
         1、组别,如果不分组的话就写Menu.NONE,
         2Id,这个很重要,Android根据这个Id来确定不同的菜单
         3、顺序,那个菜单现在在前面由这个参数的大小决定
         4、文本,菜单的显示文本*/
        //2.Java代码中添加
        menu.add(Menu.NONE,1,Menu.NONE,"java代码中添加OptionMenu1");
        menu.add(Menu.NONE,2,Menu.NONE,"java代码中添加Optionmenu2");
        return true;
    }
    //OptionMenu菜单监听事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case 1:
                String str1 = "您点击了java代码中添加OptionMenu1";
                Toast.makeText(MainActivity.this,str1, Toast.LENGTH_SHORT).show();
                break;
            case 2:
                String str2 = "您点击了java代码中添加OptionMenu1";
                Toast.makeText(MainActivity.this,str2, Toast.LENGTH_SHORT).show();
                break;
            case R.id.option_color:
                mTextView.setTextColor(Color.RED);
                break;
            case R.id.font_san:
                mTextView.setTextSize(mTextView.getTextSize()+1);
                break;
            case R.id.font_wu:
                mTextView.setTextSize(mTextView.getTextSize()+2);
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}
        xml布局中:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="zhanghao.optionmenudemo.MainActivity">

    <TextView
        android:id="@+id/optionMenuText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="OptionMenu选择菜单"/>
</RelativeLayout>
      res资源文件夹下的menu布局:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/option_color"
        app:showAsAction="never"
        android:title="optionMenu-->改变字体颜色"/>
    <!--二级菜单-->
    <item
        android:id="@+id/option_textSize"
        app:showAsAction="never"
        android:title="optionMenu-->改变字体大小">
        <menu>
            <group>
                <item
                    android:title="字体大小为30sp"
                    android:id="@+id/font_san"
                    app:showAsAction="never">
                </item>
                <item
                    android:id="@+id/font_wu"
                    app:showAsAction="never"
                    android:title="字体大小为50sp">
                </item>
            </group>
        </menu>
    </item>
</menu>
       



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值