menu的使用

在手机,当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中引用布局文件
@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getMenuInflater();  
	    inflater.inflate(R.menu.main, menu);   
	    return true;
	}

在MainActivity中添加监听处理

@Override
	public 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 stub
super.onCreateOptionsMenu(menu);
menu.add(0, SHEN, 0, "item1");// 添加menu菜单一个item
menu.add(0, SHEN1, 0, "item2");// 添加menu菜单一个item
menu.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


你可能感兴趣的:(java,android,menu)