1.可在activity和fragment中使用。

2.使用方法

(1)注册

registerForContextMenu(btn);//btn是要实现交互的控件

(2)重写onCreateContextMenu方法和onContextItemSelected方法(有两种方式先讲第一种)

@Override

    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

        super.onCreateContextMenu(menu, v, menuInfo);

        getMenuInflater().inflate(R.menu.menu,menu);

        //给menu设置布局文件,当触发时显示在界面上
}
@Override

    public boolean onContextItemSelected(MenuItem item) {

        //布局文件里面对应的id,当点击时,根据id区别那个被点击

        switch(item.getItemId()){

            caseR.id.text1:

                Log.i("leilei","text1");

                break;

            caseR.id.text2:

                Log.i("leilei","text2");

                break;

            caseR.id.text3:

                Log.i("leilei","text3");

                break;
}
returnsuper.onOptionsItemSelected(item);
}

(3)触发条件(1 调用方法 view.showContextMenu(),2 长按(可以和长按事件setOnLongClickListener同时触发)。

//调用方法方式

btn.setOnClickListener(newView.OnClickListener() {

            @Override

            public void onClick(View v) {

                v.showContextMenu();//单击直接显示Context菜单

            }

        });

在讲讲第二种方式(ContextMenu 方法)

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
// TODOAuto-generated method stub
menu.setHeaderIcon(R.drawable.tp_3);
menu.setHeaderTitle(R.string.menuHeader01);
menu.add(, , , R.string.conTextMenu01);
menu.add(, , , R.string.conTextMenu02);
super.onCreateContextMenu(menu, v, menuInfo);
}
 @Override
public boolean onContextItemSelected(MenuItem item){
String str = "";
switch(item.getItemId()){
case 20:
str = "20";
break;
case 21:
str = "21";
break;
}
Toast.makeText(getApplicationContext(),str, Toast.LENGTH_LONG).show();
return true;
}

这种是用原生的进行菜单填充

menu.add(20, 20, 20, R.string.conTextMenu01);

参数1:小组的标记;

参数2:给他设置一个ID ;

参数3:怎么显示位置(0,1);

参数4:文字的显示
 (4)总结

1.registerForContextMenu方法:用于为一个View对象注册上下文菜单,其输入为View对象

2.onCreateContextMenu方法:初始化上下文菜单,在需要相应上下文菜单时调用

3.onContextItemSelected方法:设置上下文中某个菜单被选中时的操作

4.onContextMenuClosed方法:用于设置当前上下文菜单被关闭时的操作,其输入为menu对象

by:leileitua

安卓长按交互onCreateContextMenu的简单 用法的更多相关文章

  1. shell expect的简单用法【转】

    用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下:  ######## ...

  2. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  3. JS的简单用法

    JS的简单用法 参考:http://www.w3school.com.cn/js/js_switch.asp JavaScript 是网络的脚本语言 JavaScript 是可插入 HTML 页面的编 ...

  4. Func和Action委托简单用法

    Func和Action类是特殊的类型,它们允许你在不必指定自定义委托类型的情况下,去使用委托.在整个.NET框架中都可以使用它们.例如,在我们考察并行计算时,你也会看到这两个类的示例. 上面一段文字是 ...

  5. slf4j的简单用法以及与log4j的区别

    之前在项目中用的日志记录器都是log4j的日志记录器,可是到了新公司发现都是slf4j,于是想着研究一下slf4j的用法. 注意:每次引入Logger的时候注意引入的jar包,因为有Logger的包太 ...

  6. Numpy的简单用法

    Numpy的简单用法 import numpy as np 一.创建ndarray对象 列表转换成ndarray: >>> a = [1,2,3,4,5] >>> ...

  7. Android Spinner的简单用法。

    今天学到的是spinner,就是下拉列表,这可不是ExpandListView哈. 闲话不解释.这是控件,所以先上布局:就不上线性布局了,基本上可以总结出,控件都得在布局里写,写之前嵌个布局就行. & ...

  8. WebView的一些简单用法

    一直想写一个关于 WebView 控件的 一些简单运用,都没什么时间,这次也是挤出时间写的,里面的一些基础知识就等有时间再更新讲解一下,今天就先把项目出来做一些简单介绍,过多的内容可以看我的源码,都传 ...

  9. CATransition(os开发之画面切换) 的简单用法

    CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...

随机推荐

  1. 关于aspnet_regsql使用方法

    aspnet_regsql命令解释 说明该向导主要用于配置SQL Server数据库,如membership,profiles等信息,如果要配置SqlCacheDependency,则需要以命令行的方 ...

  2. spring MVC 字符串数组传值 字符带有逗号,问题

    按照如下图所示方式传值,想在后台得到一个长度为1的数组,后台直接根据,进行分割,就得到长度为2的数组 1.曲线救国解决法 解决方案, 前端对参数进行编码 encodeURIComponent(valu ...

  3. Codeforces Round #401 (Div. 1) C(set+树状数组)

    题意: 给出一个序列,给出一个k,要求给出一个划分方案,使得连续区间内不同的数不超过k个,问划分的最少区间个数,输出时将k=1~n的答案都输出 比赛的时候想的有点偏,然后写了个nlog^2n的做法,T ...

  4. [Leetcode] rotate image 旋转图片

    You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...

  5. 【COGS 1534】 [NEERC 2004]K小数 &&【COGS 930】 [河南省队2012] 找第k小的数 可持久化01Trie

    板子题,只是记得负数加fix最方便 #include <cstdio> ,N=; namespace FIFO { <<],*S=B,*T=B; #define getc() ...

  6. BZOJ2097: [Usaco2010 Dec]Exercise 奶牛健美操 贪心+伪树dp+二分

    //论全局变量的杀伤力....QAQ#include<cstdio> #include<iostream> #include<cstdlib> #include&l ...

  7. 纯css实现 switch开关

    <!-- 直接看代码,利用了css3兄弟选择器 --><!-- html --> <button class="switch"> <inp ...

  8. watch用法小记

    By francis_hao    Jun 30,2017   watch:周期性的执行一个一个程序,并全屏显示输出 概述 watch [options] command   描述 watch重复的运 ...

  9. python 闭包与装饰器

    1.闭包--返回子函数名 作用:使用子函数之外的父函数的变量 闭包就是你调用了一个函数a,这个函数a反悔了一个子函数名b,这个返回的函数b就叫做闭包 代码举例 def a(): test = 'aa' ...

  10. 使用命令wsimport生成WebService客户端

    使用命令wsimport生成WebService客户端 wsimpost命令有几个重要的参数: -keep:是否生成java源文件    -d:指定输出目录    -s:指定源代码输出目录    -p ...