多个Fragment的Activity中上下文菜单的处理(ContextMenu)

在有多个Fragment的Activity中使用上下文菜单时会出现上下文菜单所执行的命令与被执行的对象不一致的问题。比如:在Fragment(或ListFragment)中含有ListView,你給ListView对象注册了上下文菜单。样例代码:

        ListView mListView = (ListView) mRoot.findViewById(R.id.my_listview);
        mListView.setOnCreateContextMenuListener(this);

在上下文菜单的点击实现方法(onContextItemSelected)中执行菜单操作时你会发现被操作的对象似乎总是第一个Fragment中的那个ListView。或者来回切换Fragment时是上一个Fragment里的ListView。这让人有些沮丧。

解决办法:1)在创建上下文菜单时设定不同的组ID(GroupID)。比如:

	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		menu.add(this.getDataType(), MENU_EDIT, Menu.NONE, R.string.edit).setIcon(android.R.drawable.ic_menu_edit);
		menu.add(this.getDataType(), MENU_DELETE, Menu.NONE, R.string.delete).setIcon(android.R.drawable.ic_menu_delete);
		super.onCreateContextMenu(men
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值