读书人

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

发布时间: 2012-12-22 12:05:06 作者: rapoo

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对应的事件,应该都可以弹出上下文菜单,不过没有经过测试。

读书人网 >移动开发

热点推荐