大家还记得Spinner的效果吗。ContextMenu的效果很像我们Spinner的dialog使用效果,弹出一个框体,然后有很多的list。今天我们来看一下ContextMenu的使用,contextMenu分为静态使用和动态使用。
一、contextMenu静态使用(通过.xml文件添加数据)
1我们首先在res目录下创建menu文件夹。
2.之后再menu文件夹里面创建.xml文件(名字我起为context_menu),
3.在context_menu中创建item,赋予id和title。
4.在activity中重写onCreateContextMenu方法和onContextItemSelected
关于静态的contextMenu就配置完了,然后我们需要通过一个按钮来启动它。
很简两行行代码搞定。
大家只需要在意那个按键就好,其他的是我自己写的代码,跟这个没什么关系。
二、contextMenu动态使用(通过java代码实现)
如果说我们想要不断地添加menu数据,或者想要让不同的item实现不同的menu效果,我们首选的最好还是动态实现(用java代码,而不是用.xml文件)。
这回我们可以考虑借助listView一下。
1.activity.xml文件中创建listview标签,赋予id mLv(你们随意)。
2.在activity.java文件中添加listView控件名字为mLv。
3.给mLv设置contextMenu的监听器(registerForContextMenu(mLv);)
4.给静态一样,重写onCreateContextMenu和onContextItemSelected两个方法,但是写的代码不太一样了。
第一行代码,我们首先获取到我们mLv的适配器。
第二行代码,我们给我们创建的menu一个标题,我们用mLv当前item的名字作为他的标题。
第三行代码,我们给menu的标题旁边添加一张图片。
剩下的都是给我们的menu添加item
第一个参数是组的id,我们不用去关;第二个是item的id,这个就是我们经常写的id的那个值,不能有重复;第三个参数是条目编号,谁最大谁显示在前面;第三个就是我们title的内容。
我们的onContextItemSelected方法还是跟之前一样,只是我们要改成我们刚写的menu的id判断。
然后我们来看一下效果图