首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

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

2012-12-22 
ListView单击和长按弹出上下文菜单(ContextMenu)ListView单击和长按弹出上下文菜单(ContextMenu)1.长按弹

ListView单击和长按弹出上下文菜单(ContextMenu)
ListView单击和长按弹出上下文菜单(ContextMenu)
1.长按弹出上下文菜单所有的View 都可以监听setOnCreateContextMenuListener事件,长按都会弹出上下文菜单 View.setOnCreateContextMenuListener(OnCreateContextMenuListener l)
或者在activity里面注册view的上下文菜单registerForContextMenu(View view) 
重写  public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo){ super.onCreateContextMenu(menu, v, menuInfo);   @Overridepublic boolean onContextItemSelected(MenuItem item){                 if (item.getItemId() == 0){                      //处理点击上下文菜单事件 }}
处理对应的事件。
-----------------------长按ListView中的一项item弹出上下文菜单只需要监听ListView的 setOnCreateContextMenuListener事件即可然后重写对应的方法,同上面的一样。
在onContextItemSelected中获取 ListView中item对象@Overridepublic boolean onContextItemSelected(MenuItem item){  AdapterContextMenuInfo itemInfo = (AdapterContextMenuInfo)item.getMenuInfo();  // adapter    ListView 中用到的适配器  Object itemValue = adapter.getItem(itemInfo.position);  //获取到item对象后就可以进行任何操作了               }  
-----------------------

2. 单击View弹出上下文菜单
View.setOnCreateContextMenuListener(OnCreateContextMenuListener l)View.setOnClickListener(OnClickListener l)
需要同时监听view的单击事件和上下文菜单事件然后在View的onClick调用 View.showContextMenu()方法。
如下View.setOnClickListener(new OnClickListener(){ 
@Overridepublic void onClick(View v){View.showContextMenu(); }
);
然后重新对应的方法,同上一个一样。

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

热点排行