`
wangqiang6028
  • 浏览: 87945 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Android 的上下文菜单: Context Menu

阅读更多

概述:

Android 的上下文菜单类似于 PC 上的右键菜单。当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单。任何视图都可以注册上下文菜单,不过,最常见的是用于列表视图ListView的item。

注意:Android 的上下文菜单不支持图标或快捷键。

 

创建一个上下文菜单的步骤:

1. 覆盖 Activity 的 onCreateContenxtMenu() 方法,调用 Menu 的 add 方法添加菜单项(MenuItem)。

2. 覆盖 Activity 的 onContextItemSelected() 方法,响应上下文菜单菜单项的单击事件。

3. 调用 registerForContextMenu() 方法,为视图注册上下文菜单。

 

示例:

MainActivity.java 文件:

//file name: MainActivity.java
package hi.braincol.local.contextMenu;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.util.Log;
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;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);   
        showListView();
        
        //为 ListView 的所有 item 注册 ContextMenu
        registerForContextMenu(getListView());
        //这里的registerForContextMenu()也可以用下面的语句替代
        //getListView().setOnCreateContextMenuListener(this);
    }
    
    private void showListView(){
        String[] mString = new String[]{
                "路飞-Monkey D Luffy", 
                "奈美-Nami", 
                "卓洛-Zoro",
                "山治-Sanji", 
                "尼可·罗宾-Ms. All Sunday", 
                "乌索普-usoppu", 
                "托尼托尼·乔巴-Tony Tony Chopper",
        };
        ArrayAdapter<String> mla = new ArrayAdapter<String>(MainActivity.this, 
                R.layout.main, mString);
        MainActivity.this.setListAdapter(mla);      
    }
    
    //上下文菜单,本例会通过长按条目激活上下文菜单
    @Override
    public void onCreateContextMenu(ContextMenu menu, View view, 
            ContextMenuInfo menuInfo) {
        menu.setHeaderTitle("人物简介");
        //添加菜单项
        menu.add(0, ITEM1, 0, "特长");
        menu.add(0, ITEM2, 0, "战斗力");
        menu.add(0, ITEM3, 0, "经典语录");
    }
    
    //菜单单击响应
    @Override
    public boolean onContextItemSelected(MenuItem item){
        //获取当前被选择的菜单项的信息
        //AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
        //Log.i("braincol",String.valueOf(info.id));        
        switch(item.getItemId()){
        case ITEM1:
            //在这里添加处理代码
            
            break;
        case ITEM2:
            //在这里添加处理代码
            
            break;    
        case ITEM3:
            //在这里添加处理代码
            
            break;
        }
        return true;
    }
    
}

main.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="@string/hello"
    />

运行结果:

ContextMenu  menu

 

以上是使用系统的ContextMenu,当然也可以使用PopupWindow来实现这种效果,没必要局限于ContextMenu ,具体实现方法就不在这里写了...

 

转自:http://www.cnblogs.com/hibraincol/archive/2010/09/30/1839014.html

分享到:
评论

相关推荐

    上下文菜单与上下文操作模式

    在Android应用开发中,上下文菜单(Context Menu)和上下文操作模式(Contextual Action Mode)是两种常见的用户交互设计,它们提供了在特定情境下对数据进行操作的界面。这两种设计模式在处理列表、网格或其他可选元素...

    Android 之 上下文菜单、选项菜单、子菜单

    在Android应用开发中,上下文菜单(Context Menu)、选项菜单(OptionsMenu)和子菜单(Submenu)是三种重要的交互方式,用于提供用户与应用界面的多种操作选项。它们各自有不同的应用场景和设计规范,对于提升用户体验至...

    菜单 选项菜单 子菜单 上下文菜单

    本案例深入探讨了菜单的三种主要类型:普通菜单(Option Menu)、子菜单(Submenu)以及上下文菜单(Context Menu)。下面将详细阐述这三种菜单的使用方法、特点及其实现代码。 1. 普通菜单(Option Menu) 普通菜单通常...

    Kotlin上下文菜单_kotlin_

    本教程将深入探讨如何使用Kotlin实现上下文菜单(Context Menu),这对于任何想要提升Android应用交互体验的初学者来说是十分重要的知识点。 首先,我们需要理解上下文菜单的概念。在Android中,上下文菜单(Context ...

    上下文菜单+listview

    在Android开发中,"上下文菜单(Context Menu)"和"ListView"是两个非常重要的组件,尤其在构建用户交互界面时。本文将深入探讨如何在Eclipse环境下利用这两个组件创建一个功能完善的移动应用。 首先,让我们了解**上...

    Android 为EditText文本框添加长按显示上下文菜单.rar

    Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...

    创建上下文菜单

    在Android开发中,上下文菜单(Context Menu)是一种常见的交互元素,它允许用户在长按某个视图或项时出现一个包含相关操作的弹出菜单。上下文菜单通常用于提供与特定视图或数据相关的动作选项,而不是全局的操作。在...

    android 选项菜单和上下文菜单

    在Android应用开发中,选项菜单(OptionsMenu)和上下文菜单(ContextMenu)是两种常见的交互方式,用于提供用户在特定场景下的操作选择。本项目通过Android Studio实现,将这两种菜单集成在一个应用中,使得用户...

    Context-Menu.Android源码

    【Context-Menu.Android源码】是一个专门为Android平台设计的开源项目,主要目的是提供一个自定义上下文菜单(Context Menu)的实现。在Android系统中,上下文菜单通常用于响应长按事件,显示与选定项相关的操作选项...

    上下文菜单

    上下文菜单,也被称为右键菜单,是计算机用户界面中的一种常见交互元素,它提供了与当前屏幕内容相关的操作选项。当用户在特定区域(如文件、图标或文本)上单击鼠标右键时,上下文菜单会弹出,显示与该选定对象相关...

    《Menu详解(三):使用上下文菜单》对应源码

    本篇文章将深入解析如何使用上下文菜单(Context Menu),这是Menu的一种特殊形式,通常在长按操作后出现。上下文菜单提供了针对特定视图或数据项的操作,为用户提供了一种直观的方式来执行与当前环境相关的动作。 ...

    ListView:单击和长按弹出上下文菜单(ContextMenu)

    这里的`@menu/context_menu`引用了我们在`res/menu`目录下创建的上下文菜单资源文件。 接下来,我们需要在Activity中重写以下几个方法来处理上下文菜单的相关逻辑: 1. `onCreateContextMenu(ContextMenu menu, ...

    菜单,包括选项菜单,子菜单,上下文菜单

    接下来是上下文菜单(Context Menu),它是在用户长时间按压某个视图元素时出现的临时菜单,提供了与该特定元素相关的操作。上下文菜单的注册是在Activity的`registerForContextMenu(View view)`方法中完成,而展示...

    2011.09.23——— android sample之Notepad(context menu)

    标题中的“2011.09.23——— android sample之Notepad(context menu)”表明这是一个关于Android应用开发的示例项目,具体是针对Notepad应用的上下文菜单(Context Menu)功能的实践。在Android开发中,上下文菜单是...

    定制编辑框的上下文菜单

    在编程和软件开发中,上下文菜单(Context Menu)是一种常用的人机交互元素,它根据用户的操作环境提供相关的操作选项。在编辑框中,上下文菜单通常包含与文本操作相关的命令,如复制、粘贴、剪切等。本文将深入探讨...

    Yalantis/Context-Menu.Android

    总的来说,`Yalantis/Context-Menu.Android`为Android开发者提供了一个强大且易用的工具,用于创建具有视觉吸引力的上下文菜单。通过利用这个库,你可以提升应用的用户体验,使用户在享受动画效果的同时,更便捷地...

    如何写上下文菜单

    在Android、iOS、Windows等操作系统以及许多Web应用中,上下文菜单常常扮演着快速访问功能的角色。当用户对特定视图执行长按操作时,上下文菜单会弹出,显示与该视图相关的动作或选项。这种设计极大地提高了用户体验...

    WebView上下文菜单demo

    本示例“WebView上下文菜单demo”专注于实现WebView的上下文菜单(ContextMenu),通过自定义菜单功能,如复制文本等,提升用户在浏览网页时的交互体验。 `ContextMenu`是Android系统提供的一种用户界面元素,当用户...

    Android初级入门——菜单Menu的简单使用

    菜单可以分为几种类型:选项菜单(Option Menu),上下文菜单(Context Menu),弹出窗口(Popup Menu)和子菜单(Sub Menu)。 **1. 选项菜单(Option Menu)** 选项菜单是最常见的菜单类型,它在动作栏中显示。创建选项...

    Android 系统菜单与自定义菜单

    首先,Android中的系统菜单主要分为三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)和弹出式菜单(Popup Menu)。选项菜单通常在屏幕顶部显示,当用户点击设备上的菜单键时出现;上下文菜单则在长按...

Global site tag (gtag.js) - Google Analytics