Andorid——菜单:上下文菜单

一,简介

      

Android系统中的ContextMenu(上下文菜单)类似于PC的右键弹出菜单,当一个视图注册了上下文菜单,长按该试图对象将出现一个提供相关功能的浮动菜单。

 

使用:

上下文菜单可以被注册到任何视图中,最常见的是ListView,但是上下文菜单不支持图标和快捷键。

二,调用需要的方法

                    1,onCreateContextMenu方法:当上下文菜单被创建时 回调该函数

             2,onContextItemSelected方法:当上下文菜单某项被选中时回调该函数

             3,registerForContextMenu方法:注册上下文菜单

三,代码实现

         1,添加XML布局文件:

                           

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/myTextView"

    android:textSize="20sp"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:text="长按。。。"

    />

          2,代码:

                                                 

public class MainActivity extends ListActivity /*注意这里继承的类*/{

    private static final int ITEM1 = Menu.FIRST;
    private static final int ITEM2 = Menu.FIRST+1;
    private static final int ITEM3 = Menu.FIRST+2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
        showListView();
        registerForContextMenu(getListView());
    }

    private void showListView(){
        String[] mString = new String[]{

                "评论1:请叫我叶良辰!", 

                "评论2:只有我叶良辰才这么帅气逼人了!", 

                "评论3:良辰在此谢过了!",

                "评论4:哎呦,不错呦!", 

                "评论5:搜嘎!~~~~·", 

                "评论6:还记得大明湖畔的容嬷嬷么?", 

                "评论7:尔康,有人抢了你的风头!",
        };
        ArrayAdapter<String> mla = new ArrayAdapter<String>(MainActivity.this,
                R.layout.main, mString);
        MainActivity.this.setListAdapter(mla);
    }

	//当上下文菜单被创建时 回调该函数
    @Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
        menu.setHeaderTitle("删除评论!");

        //添加菜单项
        menu.add(0, ITEM1, 0, "删除");
        menu.add(0, ITEM2, 0, "取消");
		super.onCreateContextMenu(menu, v, menuInfo);
	}

    //当上下文菜单某项被选中时回调该函数
    @Override
	public boolean onContextItemSelected(MenuItem item) {

        //获取当前被选择的菜单项的信息
        switch(item.getItemId()){
        case ITEM1:

            //在这里添加处理代码
            break;

        case ITEM2:

            //在这里添加处理代码
            break;
        }
        return true;
	}

}

        注意继承的Activity基类,刚开始继承的类写错了,导致 无法找到getListView方法。

           

           

时间: 2024-09-11 15:56:27

Andorid——菜单:上下文菜单的相关文章

【转】Windows Shell扩展编程傻瓜手册大全:上下文菜单扩展

引用自:http://blog.163.com/yesaidu@126/blog/static/51819307200861853827582/ Part I: A step-by-step tutorial on writing shell extensions 第一节:Windows shell扩展初步:上下文菜单扩展   作者:Michael Dunn 译者:yesaidu   源代码下载:1       2   目录 ● README ● 系列绪言 ● 第一部分绪言 ● 从AppWiza

用XML数据岛创建上下文菜单

xml|菜单|创建|数据   上下文菜单就是用户在页面上单击右键时所显示的一组命令.微软的MSDN有一个简单的例子说明了怎样建立自定义菜单.这里,我们将通过XML的数据岛来快速创建自定义的上下文菜单.XML数据岛就是存在于HTML文档中的XML数据的一部分.通过XML文档对象模型[XML document object model (DOM)],我们可以轻松地参考和引用XML里的内容.我们这里利用XML数据岛来存储上下文菜单的多个定义,其中的每一个定义都可以和文档中的任一元素相联系.在没有定义的

safari如何关闭上下文菜单和选区菜单

开发single page app应用是长按页面出现的选区,如果滑动到另外一个界面会对操作造成影响.所以就需要处理为默认不显示.如果pc上可以用window.selection来处理选区,mobile safari可以用css处理,不出现选区. -webkit-user-select: none 手指长按连接的话会出现右键菜单,这个也是可以关闭的. 返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/ -webkit-touch

为金山虚拟光驱扩展浏览器上下文菜单功能

一.简介 虚拟光驱,对我们大家来说,都不会太陌生.因为种种原因,如,有些游戏,需要在光驱才能运行,我们为了保护光驱,或者为了加快游戏读取光盘的速度,或者因为有些电脑本来就没有安装光驱(网吧,学校的电脑往往就是这样的).我们可以通过虚拟光驱来在达到我们的目的.金山虚拟光驱是应用的比较广泛的一种虚拟光驱软件.它安装操作简单,用来制作虚拟光盘也很方便. 但在使用它的过程中,我发现每次为了将虚拟光盘插入光驱中或者从虚拟光驱中弹出光盘,我们需要先运行金山虚拟光驱管理工具才能进行.虽然并不是很复杂,但是每次

Shell扩展:定制上下文菜单

如若需要获取某个选定文件的完整路径,小弟经常机械性地先复制Shell窗口 中的路径,紧接着复制文件名并拼在路径之后.有时候复制文件路径是为了程序使 用,这就必须将路径中的所有"\"换成"\\",总之一切都是 很无聊的操作.还好我是个程序员,完全可以定制一些程序来方便自己.在此分享 给大家. 程序实现的功能很明确:在Shell的上下文菜单中加入一菜单项目"获取 文件路径并保存到剪贴板",点击此项可以将选中的一个或多个文件的完整 路径保存到剪贴板中.

如何禁用HTML页面的上下文菜单

提出问题: VC知识库<在线杂志>第六期有一篇文章"VC6中使用CHtmlView在对话框控制中显示HTML文件",很多读者来信说很喜欢这种功能.但是美中不足的是在对话框的HTML页面上单击鼠标右键会弹出上下文菜单.从而可以象在IE中那样看到页面的源代码.为了防止用户查看HTML代码,有人尝试过在CHtmlCtrl派生的窗口中重载WM_CONTEXTMENU,或者在CHtmlView以及CHtmlCtrl类中禁用右键的上下文菜单和弹出式菜单,这两个方法都没有成功.那么如何禁

VC定制编辑框的上下文菜单

上下文菜单的应用在基于Windows的应用程序中使用得越来越广泛.本文针对WM_INITMENUPOPUP消息的处理机制谈谈如何在编辑框控制的上下文菜单上添加自己的菜单项. 刚开始的时候常常碰到一个问题,就是在编辑框上单击鼠标右键时,程序并不产生WM_INITMENUPOPUP消息,原因我也说不清楚,也没有找到说明这个问题的具体文档资料.每当我子类化编辑框控制向标准的上下文菜单添加自己的菜单项时(如图二), 图二 总是要碰到上面这样的问题.那么到底该如何使用WM_INITMENUPOPUP处理机

用C++ Builder创建上下文菜单扩展处理器

当用户右击一个shell对象时,shell会显示它的上下文菜单.文件系统对象有大量的标准菜单项,如"剪切"和"拷贝",这些都是缺省的菜单项.如果对象是一个文件,是文件类的成员,就能够在注册表里指定附加的菜单项.Shell检查注册表,看看文件类型是否与一些上下文菜单handler相关联,如果是,shell会咨询这些handler是否添加额外的菜单项. 上下文菜单handler是一种shell扩展handler,它添加命令到已有的上下文菜单中.上下文菜单handler都

Android开发入门(十五)使用菜单 15.3 上下文菜单

在上一节,我们已经知道了在按MENU键的时候,如何显示选项菜单.但是,除了选项菜单,你也可以显示 一个上下文菜单.上下文菜单通常是和activity中的组件相关联的.当用户长按一个组件的时候,它的上下 文菜单就会被触发.例如,用户长按一个Button,一个上下文菜单就有可能被显示. 如果想要把一个 组件与一个上下文菜单联系在一起,就需要在组件上面调用setOnCreateContextMenuListener(). 下 面展示如何显示一个上下文菜单(Context Menu). 1. 使用之前的