Android onItemLongClick+onCreateContextMenu实现长按ListItem弹出不同菜单
2011-05-31 10:43
645 查看
前一段时间做项目需要做一个效果:一个ListActivity,长按不同的item弹出的菜单不一样;如下图所示我们长按不同的item需要弹出不同标题的menu: 长按事件可以使用ListView的setOnItemLongClick函数进行关联,但是在响应的onItemLongClick函数里面没办法调用ListView显示菜单。 在Android的菜单分两种:options menu 、context menu 。(也有分三种的:options menu 、context menu、sub menu)其中options menu是和Activity相关联的,context menu 是和View关联。我们需要点击控件出现的菜单属于context menu ;但是context menu 只能通过setOnCreateContextMenuListener来进行关联。 实现这个效果需要理解对ListView的item长按之后发生的事情: 首先触发的是onItemLongClick函数,执行onItemLongClick操作,然后根据onItemLongClick的返回值判断是不是执行OnCreateContextMenuListener函数;如果onItemLongClick返回false,则会继续执行OnCreateContextMenuListener函数,否则返回true,忽略OnCreateContextMenuListener函数。 因此我们可以在onItemLongClick的时候进行判断并且准备好OnCreateContextMenuListener中需要用到的数据,然后在OnCreateContextMenuListener中调用这些数据显示即可。 |
相关文章推荐
- Android onItemLongClick+onCreateContextMenu实现长按ListItem弹出不同菜单
- onItemLongClick+onCreateContextMenu实现长按ListItem弹出不同菜单
- Android setOnCreateContextMenuListener实现长按ListItem弹出不同菜单
- android listview的item布局中含有button,不会响应listview的onitemclick监听 以及 onitemlongclick监听问题解决
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- Android中onItemLongClick和onCreateContextMenu的搭配使用实现SQLite增删改查
- ListView、ListFragment 无法实现 onListItemClick和setOnLongClickListener
- ListView onItemLongClick 弹出ContextMenu
- Android UI设计--ListView Item的OnItemLongClickListener同时监听两种事件
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- chromium浏览器页面longclick弹出菜单功能的实现
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- 【转载】Android之用PopupWindow实现弹出菜单
- android 12 click事件的不同实现方式
- Android ListView OnItemLongClick和OnItemClick事件内部细节分享以及几个比较特别的属性
- Android setOnItemLongClickListener setOnItemClickListener 同时触发解决
- android lsitview setOnItemLongClickListener 无效或不执行
- Android用PopupWindow实现弹出菜单实例
- listview的onitemlongclick和onitemclick冲突,item中的button点击事件