Android中ContextMenu的使用方法
来源:互联网 发布:杨梅红美校评价 知乎 编辑:程序博客网 时间:2024/05/18 03:27
Android中的ContextMenu是在用户长按一个声明支持的视图时,会显示菜单项的列表,如下图所示
要创建上下文菜单,首先需要创建xml来定义菜单,在res/menu目录下创建menu_main.xml内容如下
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/Hello" android:title="@string/hello"> </item> <item android:id="@+id/Hi" android:title="@string/hi"> </item></menu>其中每个item都是菜单的每一个项目,同时item也可以包含menu,形成多层菜单的形式,代码如下
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/Hello" android:title="@string/hello"> <menu> <item android:id="@+id/Hi" android:title="@string/hi"> </item> <item android:id="@+id/Cancel" android:title="@string/cancel"> </item> </menu> </item></menu>
效果图如下
随后我们需要调用Activity中的方法,传递需要注册与上下文菜单相关联的View,此处我将View与上下文菜单的绑定放在了Activity的onCreate方法中
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); registerForContextMenu(findViewById(R.id.submit));
然后再复写onCreateContextMenu方法,这个方法将在注册的视图收到长按事件时调用
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main, menu);在这个方法中,我们可以通过MenuInflater的inflate方法通过最上面定义的菜单资源menu_main.xml来定义菜单。虽然也可以在菜单中直接定义菜单项的内容,但是视图与代码分离的方式更易阅读。
随后,我们实现onContextItemSelected方法
@Override public boolean onContextItemSelected(MenuItem item) { TextView textView=(TextView) findViewById(R.id.textView); switch (item.getItemId()) { case R.id.Hello: textView.setText("Hello"); return true; case R.id.Hi: textView.setText("Hi"); return true; default: return false; } }
这个方法可以根据选中项目的id来确定你选中的是哪个项目,对不同的选项进行处理。
阅读全文
0 0
- Android中ContextMenu的使用方法
- Android中ContextMenu的使用
- Android中ContextMenu的使用
- Android之ContextMenu的使用方法以及与OptionMenu的区别
- Android之ContextMenu的使用方法以及与OptionMenu的区别
- Android之ContextMenu的使用方法以及与OptionMenu的区别
- Android之ContextMenu的使用方法以及与OptionMenu的区别
- Android之ContextMenu的使用方法以及与OptionMenu的区别
- Android中ListView的Adapter和ContextMenu
- android的ContextMenu
- Android ContextMenu的使用
- android fragment中使用ContextMenu
- android中关于上下文菜单ContextMenu数据值的转递
- (4.1.1.3)Android 的上下文菜单: ContextMenu的使用方法以及与OptionMenu的区别
- Android ListView上的ContextMenu
- DataGrid中ContextMenu的绑定
- android中OptionMenu和ContextMenu创建
- Android ContextMenu
- 使用selenium自动发送QQ邮件(二)
- 虚拟机的linux有网卡无驱动不能联网的解决方法
- CGI编程读书笔记
- 51nod:加农炮(线段树+单调性)
- git更新服务器地址Mac版sourceTree问题
- Android中ContextMenu的使用方法
- pic之I2C设置
- retrofit的简单笔记
- 如何利用缺陷的管理提高软件开发质量四——缺陷分析简介
- 使用Git工具搭建本地局域网Git 服务
- android高德地图设置默认显示位置
- HTML全局属性
- 我的
- 给初学者的RxJava2.0教程(三)