Android--OptionMenu和ContextMenu

OptionMenu

    远古手机:OptionMenu在点击手机的menu键触发
    现代手机:创建的OptionMenu默认是在标题栏的右边

    Activity:onCreateOptionMenu(Menu menu)
        显示OptionMenu的回调方法,在此方法中向menu中添加MenuItem

    添加menuItem的两种方式:
        1,纯编码方式:menu.add(...)
        2,加载menu文件的方式:
            MenuInflater.menuInflater=getMenuInflater();
            menuInflate.inflate(R.menu.main_option,menu)

    Activity:onOptionItemSelected(MenuItem item)
        当选择某个菜单项的回调方法

例子:
纯编码方式:

  //纯编码形式
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0,1,0,"添加");
        menu.add(0,2,0,"删除");
        return super.onCreateOptionsMenu(menu);
    }

加载menu文件方式:
这种方式要创建在res里menu文件(它是xml后缀的,选择menu文件,会自动生成文件加)

 //加载menu文件
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater=getMenuInflater();
        menuInflater.inflate(R.menu.option_menu,menu);
        return super.onCreateOptionsMenu(menu);
    }

menu文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/add" android:title="添加"></item>
    <item android:id="@+id/delete" android:title="删除"></item>

</menu>

为OptionMenu设置点击监听:(直接写该方法)

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {

        switch (item.getItemId()){
            //case R.id.add:
            case 1:
                Toast.makeText(this,"添加",Toast.LENGTH_SHORT).show();
                break;
            //case R.id.delete:
            case 2:
                Toast.makeText(this,"删除",Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
ContextMenu:上下文菜单
    View.setOnCreateContextMenuListener(listener)(需要长按触发)
    Activity.onCreateContextMenu(menu,view,menuInfo)
        显示菜单的回调方法
    Activity.onContextItemSelected(MenuItem item)
        当选择某个菜单项的回调方法

方法什么和OptionMenu都一样,只不过名字换了,而且添加item的方式也相同

发布了117 篇原创文章 · 获赞 1 · 访问量 7071

猜你喜欢

转载自blog.csdn.net/qq_43616001/article/details/104256495