Menu总结

来源:互联网 发布:淘宝返利机器人骗局 编辑:程序博客网 时间:2024/06/11 05:54
public class MemuActivity extends AppCompatActivity {    TextView textView;    //menu的Id    final static int MENU_FIRST = Menu.FIRST;    final static int MENU_SECOND = Menu.FIRST + 1;    final static int MENU_THIRD = Menu.FIRST + 2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.memu_layout);        textView = (TextView) findViewById(R.id.textView);        //注册ContextMenu        registerForContextMenu(textView);    }    //OptionsMenu-------------------------    //代码中实现    @Override    public boolean onCreateOptionsMenu(Menu menu) {//        menu.add(0, MENU_FIRST, 2, "东宫");//        menu.add(0, MENU_SECOND, 1, "西宫");        //SubMenu-------------------------        //代码中实现       /* SubMenu subMenu1 = menu.addSubMenu("东宫");        subMenu1.add(0,MENU_FIRST,1,"嬛嬛");        subMenu1.add(0,MENU_SECOND,0,"纯元皇后");        subMenu1.add(0,MENU_THIRD,2,"华妃娘娘");        SubMenu subMenu2 = menu.addSubMenu("西宫");        subMenu2.add("锦溪");        subMenu2.add("妹妹");        subMenu2.add("爸爸");*/        //在menu文件夹中创建menu,直接如下调用即可        getMenuInflater().inflate(R.menu.submenu, menu);        return super.onCreateOptionsMenu(menu);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {            case MENU_FIRST:                Toast.makeText(MemuActivity.this, "东宫娘娘在等你哦", Toast.LENGTH_SHORT).show();                break;            case MENU_SECOND:                Toast.makeText(MemuActivity.this, "西宫娘娘在等你哦", Toast.LENGTH_SHORT).show();                break;            case MENU_THIRD:                Toast.makeText(MemuActivity.this, "全部娘娘在等你哦", Toast.LENGTH_SHORT).show();                break;        }        return super.onOptionsItemSelected(item);    }    //ContextMenu-------------------------    //代码中实现    @Override    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {        menu.add(0, MENU_FIRST, 2, "东宫");        menu.add(0, MENU_SECOND, 1, "西宫");//ContextMenu也可以使用SubMenu//        getMenuInflater().inflate(R.menu.submenu,menu);        super.onCreateContextMenu(menu, v, menuInfo);    }    @Override    public boolean onContextItemSelected(MenuItem item) {        switch (item.getItemId()) {            case MENU_FIRST:                Toast.makeText(MemuActivity.this, "东宫娘娘在等你哦", Toast.LENGTH_SHORT).show();                break;            case MENU_SECOND:                Toast.makeText(MemuActivity.this, "西宫娘娘在等你哦", Toast.LENGTH_SHORT).show();                break;        }        return super.onContextItemSelected(item);    }}

第一种:OptionsMenu

  1. activity中重写onCreateOptionsMenu方法addMenu()
  2. 点击事件boolean onOptionsItemSelected(MenuItem item),用item.getItemId()获取点击了哪一个menu选项

第二种:ContextMenu()

  1. activity中重写onCreateContextMenu
  2. 点击事件boolean onContextItemSelected(MenuItem item)
  3. 注册menu:registerForContextMenu(textView);(注册到textView上,长按触发)

    第二种:SubMenu

  4. 代码中实现:

        SubMenu subMenu1 = menu.addSubMenu("东宫");        subMenu1.add(0,MENU_FIRST,1,"嬛嬛");        subMenu1.add(0,MENU_SECOND,0,"纯元皇后");        subMenu1.add(0,MENU_THIRD,2,"华妃娘娘");        SubMenu subMenu2 = menu.addSubMenu("西宫");        subMenu2.add("锦溪");        subMenu2.add("妹妹");        subMenu2.add("爸爸");
  1. xml文件中创建
    调用getMenuInflater().inflate(R.menu.submenu, menu);
    xml文件写法:
<menu xmlns:android="http://schemas.android.com/apk/res/android">    <item        android:id="@+id/menu1"        android:title="单独的1" />    <item        android:id="@+id/menu2"        android:title="单独的2" />    <item android:title="东宫娘娘">        <menu>            <item                android:id="@+id/sub1"                android:title="嬛嬛" />            <item                android:id="@+id/sub2"                android:title="ss " />        </menu>    </item>    <item android:title="西宫娘娘">        <menu>            <item                android:id="@+id/sub3"                android:title="aaa " />            <item                android:id="@+id/sub4"                android:title="fff" />        </menu>    </item></menu>
0 0
原创粉丝点击