OptionsMenu、ContenxtMenu、SubMenu

来源:互联网 发布:猎鹿帽配什么衣服 知乎 编辑:程序博客网 时间:2024/06/07 03:35
创建选项菜单:重写onCreateOptionsMenu()
  • 设置菜单可用代码动态设置menuadd();
  • 通过xml设置MenuInflate.inflate();
设置菜单项点击事件:
  • onOptionsItemSelected()

add()添加菜单选项。
settitle()设置标题。

--------------------------------------------------------------------------------------------------------------------
@Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  menu.add(1, 100, 1, "菜单选项3");
  menu.add(1, 101, 1, "菜单选项4");
(item);
 }  menu.add(1, 102, 1, "菜单选项5");
  menu.add(1, 103, 1, "菜单选项6");
  menu.add(1, 104, 1, "菜单选项7");
  return true;
 }

------------------------------------------------------------------------------------------------------------------------

ContextMenu 上下文菜单:
  • 标题和标题图标
  • 菜单内容
  • 菜单内容的点击事件
ContextMenu和OptionsMenu 的区别是  Optionmenu对应的是Activity,一个Activity只能有
一个选项菜单,但是可以拥有多个Contextmenu,context对应view (Listview GridView)

注册:
this.registerForContextMenu(View对象);
然后重写OncreateContextMenu方法;
实现点击事件重写 public boolean onContextItemSelected(MenuItem item)方法

 public void onCreateContextMenu(android.view.ContextMenu menu, View v, android.view.ContextMenu.ContextMenuInfo menuInfo) {
  menu.setHeaderTitle("动作");
  menu.setHeaderIcon(R.drawable.ic_launcher);
//  menu.add(1, 0, 1, "跑跑跑");
//  menu.add(1, 1, 1, "吃吃吃");
//  menu.add(1, 2, 1, "跳跳跳");
//  menu.add(1, 3, 1, "滚滚滚");
//  menu.add(1, 4, 1, "谁谁谁");
//  menu.add(1, 5, 1, "买买买");
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.main, menu);
 };
*----------------------------------------------------------------------------------------------------------------------------------
SubMenu子菜单:
在onCreateOptionsMenu中声明Submeun 并且用 
add方法来添加子菜单中的选项。
设置监听事件时,一般先用if判断Groupid来判断属于哪个子菜单。
(一般不同的子菜单GroupId不同)再进一步用Switch判断itemId
用java代码加载子菜单的代码省略- - ----------------------------------------------------------------------------

用xml文件添加:
在原有Item上 再添加menu标签
---------------------------------------------------------------------------------------------------------------------------
  <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings
        ">
        <menu>
            <item
                android:id="@+id/item101"
                android:orderInCategory="100"
                android:title="101"
                />
            <item
                android:id="@+id/item102"
                android:orderInCategory="100"
                android:title="102"
                />
        </menu>
    </item>




0 0
原创粉丝点击