menu的使用

来源:互联网 发布:英雄杀官职怎么算法 编辑:程序博客网 时间:2024/06/11 17:41

在手机,当Menu按下的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单,这个菜单我们就叫他选项菜单OptionsMenu,一般情况下,选项菜单最多显示2排每排3个菜单项,这些菜单项有文字有图标,也被称作Icon Menus,如果多于6项,从第六项开始会被隐藏,在第六项会出现一个More里,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作Expanded Menus。


menu实现方法有很多种,第一种,在menu中的main.xml中定义局文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >    <group         android:id="@+id/logined"         android:menuCategory="alternative">          <item             android:id="@+id/item1"             android:title="菜单1"             android:orderInCategory="2"             android:icon="@drawable/ic_launcher">                    </item>      <item         android:id="@+id/item2"         android:title="菜单2"         android:orderInCategory="6"         android:icon="@drawable/ic_launcher">            </item>        </group>      <group         android:id="@+id/unlogin"         android:menuCategory="container">                   <item             android:id="@+id/item3"             android:title="菜单3"             android:orderInCategory="5"             android:icon="@drawable/ic_launcher">                   </item>          <item             android:id="@+id/item4"             android:orderInCategory="4"             android:title="菜单4"             android:icon="@drawable/ic_launcher">                   </item>      </group>  </menu>
在MainActivity中引用布局文件
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();      inflater.inflate(R.menu.main, menu);       return true;}

在MainActivity中添加监听处理

@Overridepublic boolean onMenuItemSelected(int id, MenuItem item) {// TODO Auto-generated method stub//switch(item.getItemId())switch(item.getItemId()){case R.id.item1:Toast.makeText(getApplication(), "item1", Toast.LENGTH_SHORT).show();break;case R.id.item2:Toast.makeText(getApplication(), "item2", Toast.LENGTH_SHORT).show();break;case R.id.item3:Toast.makeText(getApplication(), "item31", Toast.LENGTH_SHORT).show();break;case R.id.item4:Toast.makeText(getApplication(), "item4", Toast.LENGTH_SHORT).show();break;}return super.onMenuItemSelected(id, item);}

使用下面这个效果是一样的

// @Override// public boolean onOptionsItemSelected(MenuItem item) {// // TODO Auto-generated method stub// switch(item.getItemId()){// case R.id.item1:// Toast.makeText(getApplication(), "item1", Toast.LENGTH_SHORT).show();// break;// case R.id.item2:// Toast.makeText(getApplication(), "item2", Toast.LENGTH_SHORT).show();// break;// case R.id.item3:// Toast.makeText(getApplication(), "item31", Toast.LENGTH_SHORT).show();// break;// case R.id.item4:// Toast.makeText(getApplication(), "item4", Toast.LENGTH_SHORT).show();// break;// }// return super.onOptionsItemSelected(item);// }


第二种方法是:

   protected static final int SHEN = Menu.FIRST;protected static final int SHEN1 = Menu.FIRST + 1;protected static final int XIAO = Menu.FIRST + 2;protected static final int XIAO1 = Menu.FIRST + 3;// menu菜单选项public boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubsuper.onCreateOptionsMenu(menu);menu.add(0, SHEN, 0, "item1");// 添加menu菜单一个itemmenu.add(0, SHEN1, 0, "item2");// 添加menu菜单一个itemmenu.add(0, XIAO, 0, "item3");// 添加menu菜单一个item// 第一个参数是菜单所在组的名字,组的id,第二个是item的id ,第三个是item// 最后一个是item显示的内容。return true;}


更详细可参考这里:http://www.cnblogs.com/giuz/archive/2010/10/19/1855235.html


0 0
原创粉丝点击