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时弹出的菜单。
先来看下效果图:

实现代码如下:
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, "设置来电铃声");
}
});

浙公网安备 33010602011771号