我的android 第19天 - 上下文菜单
实现流程
5、对列表项注册上下文菜单
. registerForContextMenu(listView)或者
listView.setOnCreateContextMenuListener(this);
给liestView注册上下文菜单
. onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo):创建列表项的上下文菜单
此方法每次显示上下文都会触发
. 装配上下文菜单(与选择菜单差不多)
. 设置上下文菜单的标题:menu.setHeaderTitle(name);
6、监听上下文菜单
•onContextItemSelected
•对上下文菜单进行业务处理
/**
* 每次显示上下文菜单的时都会触发(每次长按ListView的列表项显示上下文菜单 */
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
// 取出当前Item对应的map数据
HashMap<String, Object> map = data.get(info.position);
// 取得书名
String name = map.get(NAME).toString();
// 设置上下文菜单的顶部标题
menu.setHeaderTitle(name);
getMenuInflater().inflate(R.menu.menu_book_context, menu);
}
/**
* 监听选择菜单的点击 */
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case R.id.menu_add: // 添加
menuEidtOrAdd(null);
break;
case R.id.menu_delete: // 删除
optionsMenuDelete();
break;
case R.id.menu_good_look: // 好看
case R.id.menu_not_good_look: // 不好看
optionsMenuGoodLookOrNot(itemId);
break;
}
return super.onOptionsItemSelected(item);
}