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, "设置来电铃声");
}
});