ListView单击和长按弹出上下文菜单(ContextMenu)

ListView单击和长按弹出上下文菜单(ContextMenu)

1.长按弹出上下文菜单
所有的View 都可以监听setOnCreateContextMenuLi stener事件,长按都会弹出上下文菜单 
View.setOnCreateContextMenuLi stener(OnCreateContextMenuListe ner l)

或者在activity里面注册view的上下文菜单
registerForContextMenu(View view) 

重写  
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
super.onCreateContextMenu(menu, v, menuInfo); 
 
 
}
 
@Override
public boolean onContextItemSelected(MenuItem item)
{
                          if (item.getItemId() == 0)
                                //处理点击上下文菜单事件
 
}
}

处理对应的事件。

-----------------------------------------------------------
长按ListView中的一项item弹出上下文菜单
只需要监听ListView的 setOnCreateContextMenuLi stener事件即可
然后重写对应的方法,同上面的一样。

在onContextItemSelected中获取 ListView中item对象
@Override
public boolean onContextItemSelected(MenuItem item)
{
   AdapterContextMenuInfo itemInfo = (AdapterContextMenuInfo)item.getMenuInfo();
   // adapter      ListView 中用到的适配器
   Object itemValue = adapter.getItem(itemInfo.position);
   //获取到item对象后就可以进行任何操作了
                      
}  

-----------------------------------------------------------


2. 单击View弹出上下文菜单

View.setOnCreateContextMenuLi stener(OnCreateContextMenuListe ner l)
View.setOnClickListener(OnClickListener l)

需要同时监听view的单击事件和上下文菜单事件
然后在View的onClick调用 View.showContextMenu()方法。

如下
View.setOnClickListener(new OnClickListener()

@Override
public void onClick(View v)
{
View.showContextMenu(); 
}

);

然后重新对应的方法,同上一个一样。


这样,不论单击或者长按,都可以弹出上下文菜单。

只要能监听到view对应的事件,应该都可以弹出上下文菜单,不过没有经过测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值