Android创建浮动的上下文菜单,实现微信通讯录列表长按弹出菜单项功能
来源:互联网 发布:知豆电动汽车租赁价格 编辑:程序博客网 时间:2024/05/02 04:45
上次的博客中实现了微信通讯录的效果后 微信通讯录效果,现在给通讯录联系人增加长按弹出上下文菜单功能,效果如下:
功能和实现也比较简单,步骤如下:
第一步:调用方法registerForContextMenu() 注册你要弹出浮动菜单的view,一般是ListView或者GridView。
第二步:在Activity中实现 onCreateContextMenu() 方法。
第三步:实现onContextItemSelected()方法,完成浮动菜单选项的点击选择事件。
代码接着实现微信通讯录效果来,首先第一步注册ListView
//mMainList是ListView对象registerForContextMenu(mMainList);
接着重写onCreateContextMenu方法,加载浮动菜单选项
@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu);}
这里涉及到的context_menu菜单资源文件如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/context_top" android:orderInCategory="100" android:showAsAction="never" android:title="置顶"/> <item android:id="@+id/context_delete" android:orderInCategory="100" android:showAsAction="never" android:title="删除"/> <item android:id="@+id/context_share" android:orderInCategory="100" android:showAsAction="never" android:title="分享"/></menu>
最后处理菜单的选择事件:
@Overridepublic boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item .getMenuInfo(); switch (item.getItemId()) { case R.id.context_top: ToastUtils.showToast(this, "置顶"); return true; case R.id.context_delete: ToastUtils.showToast(this, "删除"); return true; case R.id.context_share: ToastUtils.showToast(this, "分享"); return true; default: return super.onContextItemSelected(item); }}
也就是说,当注册的ListView接收到长按事件,系统会调用onCreateContextMenu()方法,然后当用户选择了菜单选项后,系统会调用onContextItemSelected()方法来进行处理。
以上就是三步实现Android浮动的上下文菜单功能,其实在Android官网中,还有另外的一种方法,但是感觉比这种稍微复杂一点,就没有使用那种了。
参考资源:Android API
1 0
- Android创建浮动的上下文菜单,实现微信通讯录列表长按弹出菜单项功能
- Android学习----------长按列表项弹出菜单,给菜单项添加事件,获取上下文
- Android学习长按列表项弹出菜单 给菜单项添加事件 获取上下文
- Android之ListView长按列表项弹出菜单 给菜单项添加事件 获取上下文
- 长按listview弹出上下文菜单实现
- 长按listview弹出上下文菜单实现
- android 组件长按弹出上下文菜单
- 【Android】菜单功能的实现:上下文菜单
- Android ListView长按创建上下文菜单
- Android 上下文菜单(长摁弹出)
- EditText 长按弹出的上下文菜单(如何修改系统默认弹出的上下文菜单)
- ListView:长按弹出上下文菜单(ContextMenu)
- Android上下文菜单,长按出现的菜单
- ExpandableListView的长按点击弹出上下文菜单方法
- 微信中长按弹出菜单(1) 没有实现功能
- 微信中长按弹出菜单(2)实现了功能
- android meun 菜单的使用(长按弹出菜单)
- android-上下文菜单的创建
- logback 配置详解(一)<configuration> and <logger>
- Linux查看系统信息命令和方法
- ASP.NET MVC 如何解决“上下文的模型已在数据库创建后发生更改”问题
- Activity介绍
- 安装lnmp1.3版流程
- Android创建浮动的上下文菜单,实现微信通讯录列表长按弹出菜单项功能
- OpenSceneGraph实现的NeHe OpenGL教程 - 第三十四课
- Android Gradle Plugin的Transform API
- 进阶项目14-链表版通信录
- xml文件中,<beans >中的xmlns,xmlns:xsi,xmlns:context,等等
- 当 Archlinux 中 Quartus prime 的 MegaWizard 失去响应时的处理
- logback 常用配置详解(二) <appender>
- 使用libs下的.so动态库文件
- 外星人入侵_纪中3077_spfa