android-上下文菜单的创建

//Menu设置
//覆盖两个方法onCreateOptionsMenu(Menu menu)、onOptionsItemSelected(MenuItem Item)
//onCreateOptionsMenu:在该函数中创建Menu
//onOptionsItemSelected:当选中某个Menu时调用,用switch(Item.getItemId())来判别
//参数1.分组 2.ID 3.排列顺序 4.标题
menu.add(1, 1, 0, "设置").setIcon(R.drawable.setting);
menu.add(1, 2, 1, "账号").setIcon(R.drawable.switchuser);
menu.add(1, 3, 2, "官方").setIcon(R.drawable.officialweibo);
menu.add(2, 4, 3, "意见").setIcon(R.drawable.comment);
menu.add(2, 5, 4, "关于").setIcon(R.drawable.aboutweibo);
menu.add(2, 6, 5, "退出").setIcon(R.drawable.menu_exit);
//弹出上下文菜单,需用registerForContextMenu(View v)来注册
ListView lv = new LisrView(this);
registerForContextMenu(lv);//注册一个ListView的上下文菜单
//效果是可以在ListView中的某一项长按,会出现一个消息框, 在这个框中有菜单选项
//下面lm.id是用于显示上下文菜单的子视图的行ID。也就是获取到得是BaseAdapter方法getItemId(int position)的返回值
//触发上下文菜单的某一项
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterContextMenuInfo lm=(AdapterContextMenuInfo)item.getMenuInfo();
switch(item.getItemId()){
case 1://转发
break;
case 2://评论
break;
case 3://收藏
break;
case 4://查看信息
break;
}
Toast.makeText(this, item.getTitle(), 1000).show();
return super.onContextItemSelected(item);
}
//创建上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
AdapterContextMenuInfo lm=(AdapterContextMenuInfo)menuInfo;
System.out.println("第"+lm.id+"项,弹出菜单注册成功");
menu.setHeaderTitle("第"+lm.id+"项的弹出菜单");
menu.add(1, 1, 1, "转发");
menu.add(1, 2, 2, "评论");
menu.add(1, 3, 3, "收藏");
menu.add(1, 4, 4, "查看信息
}

原文地址:https://www.cnblogs.com/qiaoxu/p/4613590.html