Android之Menu

OptionMenu

普通的菜单,既点击menu按钮的时候。

 

点击更多操作:

 

两种写法:

1.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
	super.onCreateOptionsMenu(menu);

	int i = 1 ;
	//添加菜单项
	MenuItem call = menu.add(Menu.NONE,i++,Menu.NONE,"呼叫");
	call.setIcon(R.drawable.icon);
	MenuItem send = menu.add(Menu.NONE,i++,Menu.NONE,"发送短信");
	send.setIcon(R.drawable.icon);
	int groupId = 1;
	menu.add(groupId,i++,Menu.NONE,"删除联系人");
	menu.add(groupId,i++,Menu.NONE,"复制联系人");
	//添加子菜单
	SubMenu more = menu.addSubMenu(groupId,i++,Menu.NONE,"更多操作");
	more.setIcon(R.drawable.icon);
	more.add(groupId,i++,Menu.NONE,"新建联系人");
	more.add(groupId,i++,Menu.NONE,"删除所有联系人");
	more.add(groupId,i++,Menu.NONE,"导入联系人");
	
	//通过xml,来配置菜单项。
	//new MenuInflater(getApplication()).inflate(R.menu.two916menu, menu);

	return true;
}


 

2,通过xml来配置:

 使用如下语句可以配置:

new MenuInflater(getApplication()).inflate(R.menu.two916menu, menu);


 

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
	<item android:orderInCategory="1" android:titleCondensed="呼叫"
		android:id="@+id/contect_call" android:icon="@drawable/icon">
	</item>
	<item android:orderInCategory="2" android:titleCondensed="发送短信"
		android:id="@+id/contect_send_mms" android:icon="@drawable/icon">
	</item>
	<group android:enabled="true" android:visible="true"
		android:checkableBehavior="all" android:id="@+id/withcontect"
		android:orderInCategory="1" android:menuCategory="container">
		<item android:orderInCategory="3" android:titleCondensed="删除联系人"
			android:id="@+id/contect_delete_contect" android:menuCategory="container" />
		<item android:orderInCategory="4" android:titleCondensed="复制联系人"
			android:id="@+id/contect_copy_contect" android:menuCategory="container" />
		<item android:orderInCategory="5" android:title="更多操作"
			android:icon="@drawable/icon" android:id="@+id/other_operator">
			<menu>
				<item android:orderInCategory="1" android:id="@+id/contect_new_contect"
					android:title="新增联系人" />
				<item android:orderInCategory="2" android:id="@+id/contect_delete_all_contect"
					android:title="删除所有联系人" />
				<item android:orderInCategory="3" android:id="@+id/contect_import_contect"
					android:title="导入联系人" />
			</menu>
		</item>
	</group>
</menu>


 

 

ContextMenu

给ListView 的Item 注册菜单ContextMenu.当长按ListView的Item时弹出的菜单。

 先来看下效果图:

ContextMenu

实现代码如下:

	listView = (ListView) findViewById(R.id.two916_listview);
	
	String[] mString = new String[] { "程伟 滨江", "骆丽君 鄞州", "张高飞 鄞州",
			"陈丽丽 鄞州", "吴龙春 鄞州", "黄春光 鄞州", "王旭君 萧山", "李津 滨江", "蒋丰明 西湖",
			"黄婷婷 鄞州" };
	listView.setAdapter(new ArrayAdapter<String>(Two916Activity.this,
			android.R.layout.simple_list_item_1, mString));
	
	//给ListView添加ContextMenuListener
	listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
		@Override
		public void onCreateContextMenu(ContextMenu menu, View v,
				ContextMenuInfo menuInfo) {
			// 设置标题
			menu.setHeaderTitle("用户信息");
			int i = 1;
			// 添加菜单项
			menu.add(0, i++, 0, "修改姓名");
			menu.add(0, i++, 0, "修改号码");
			menu.add(0, i++, 0, "删除");
			menu.add(0, i++, 0, "设置来电头像");
			menu.add(0, i++, 0, "设置来电铃声");
		}
	});


 

 

posted @ 2011-09-18 13:47  mylitboy  阅读(225)  评论(0编辑  收藏  举报