`
JasonShieh
  • 浏览: 527551 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

给一个控件加上下文菜单(ContextMenu)Creating a ContextMenu on a View

阅读更多

layout中的main.xml

XML:
<?xml version ="1.0" encoding ="utf-8" ?> 
<LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" 
     android:orientation ="vertical" 
     android:layout_width ="fill_parent" 
     android:layout_height ="fill_parent" > 
     <TextView 
          android:layout_width ="fill_parent" 
          android:layout_height ="wrap_content" 
          android:text ="Long-Press on of the Items in the list." /> 
     <ListView android:id ="@+id/list_favorites" 
          android:layout_width ="fill_parent" 
          android:layout_height ="fill_parent" /> 
</LinearLayout>
 


源代码是:

Java代码
package com.gggeye.study;  
  
import java.util.ArrayList;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.view.ContextMenu;  
import android.view.MenuItem;  
import android.view.View;  
import android.view.ContextMenu.ContextMenuInfo;  
import android.view.View.OnCreateContextMenuListener;  
import android.widget.ArrayAdapter;  
import android.widget.ListView;  
   
  
public class ContextMenuSample extends Activity {  
  
     // ===========================================================  
     // Final Fields  
     // ===========================================================  
     protected static final int CONTEXTMENU_DELETEITEM = 0;  
  
     // ===========================================================  
     // Fields  
     // ===========================================================  
  
     protected ListView mFavList;  
     protected ArrayList<Favorite> fakeFavs = new ArrayList<Favorite>();  
  
     // ===========================================================  
     // "Constructors"  
     // ===========================================================  
  
     /** Called when the activity is first created. */  
     @Override  
     public void onCreate(Bundle icicle) {  
          super.onCreate(icicle);  
          setContentView(R.layout.main);  
  
          /* Add some items to the list the listview will be showing. */  
          fakeFavs.add(new Favorite("John", "nice guy"));  
          fakeFavs.add(new Favorite("Yasmin", "hot girl"));  
          fakeFavs.add(new Favorite("Jack", "cool guy"));  
  
          this.mFavList = (ListView) this.findViewById(R.id.list_favorites);  
          initListView();  
     }  
  
     private void refreshFavListItems() {  
          mFavList.setAdapter(new ArrayAdapter<Favorite>(this,  
                    android.R.layout.simple_list_item_1, fakeFavs));  
     }  
  
     private void initListView() {  
          /* Loads the items to the ListView. */  
          refreshFavListItems();  
  
          /* Add Context-Menu listener to the ListView. */  
          mFavList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {  
  
               public void onCreateContextMenu(ContextMenu conMenu, View view , ContextMenuInfo info) {  
                    conMenu.setHeaderTitle("ContextMenu");  
                    conMenu.add(0, 0, 0, "Delete this favorite!");  
                    
                    /* Add as many context-menu-options as you want to. */  
               }  
          });  
     }  
  
     // ===========================================================  
     // Methods from SuperClass/Interfaces  
     // ===========================================================  
  
     @Override  
     public boolean onContextItemSelected(MenuItem aItem) {  
          ContextMenuInfo menuInfo = (ContextMenuInfo) aItem.getMenuInfo();  
  
          /* Switch on the ID of the item, to get what the user selected. */  
          switch (aItem.getItemId()) {  
               case CONTEXTMENU_DELETEITEM:  
                    /* Get the selected item out of the Adapter by its position. */  
                    Favorite favContexted = (Favorite) mFavList.getAdapter()  
                         .getItem(0);  
                    /* Remove it from the list.*/  
                    fakeFavs.remove(favContexted);  
  
                    refreshFavListItems();  
                    return true; /* true means: "we handled the event". */  
          }  
          return false;  
     }  
  
     // ===========================================================  
     // Inner and Anonymous Classes  
     // ===========================================================  
  
     /** Small class holding some basic */  
     protected class Favorite {  
  
          protected String name;  
          protected String kindness;  
  
          protected Favorite(String name, String kindness) {  
               this.name = name;  
               this.kindness = kindness;  
          }  
  
          /** The ListView is going to display the toString() return-value! */  
          public String toString() {  
               return name + " (" + kindness + ")";  
          }  
  
          public boolean equals(Object o) {  
               return o instanceof Favorite && ((Favorite) o).name.compareTo(name) == 0;  
          }  
     }  
}  
分享到:
评论

相关推荐

    Android之上下文菜单ContextMenu

    在Android开发中,上下文菜单(ContextMenu)是一种常用的交互元素,它为用户提供了一种针对特定视图或数据项的操作选项。上下文菜单通常在长按某个视图后弹出,显示与该视图相关的操作。在本文中,我们将深入探讨`...

    A0246上下文菜单ContextMenu1

    当用户在特定的View上长按超过两秒钟时,系统会弹出一个上下文菜单,展示与当前View相关的操作选项。与OptionsMenu不同,ContextMenu不支持图标或者快捷键。 1. **知识解析**: - **创建上下文菜单**:通过重写`...

    智能家居系统 上下文菜单ContextMenu.doc

    在Windows环境中,右键点击文件会出现“打开”、“重命名”等操作选项,而在Android系统中,用户常通过长按一个视图元素(如EditText)来触发上下文菜单,显示如“剪切”、“复制”、“粘贴”等操作。 上下文菜单与...

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

    1. `onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)`:当用户长按时,系统会调用这个方法来初始化上下文菜单。在这里,我们可以添加菜单项,比如: ```java @Override ...

    android ContextMenu 上下文菜单

    上下文菜单(ContextMenu)通常在长按某个项目时弹出,而不是像常规菜单那样通过菜单键或者汉堡菜单显示。在本文中,我们将深入探讨如何在Android应用中创建和使用`ContextMenu`。 ### 1. 创建ContextMenu 首先,...

    ContextMenu上下文菜单Demo

    上下文菜单(ContextMenu)是计算机用户界面中的一种常见元素,主要在用户点击右键时出现,提供与当前操作对象相关的快捷操作选项。在Android和Windows等操作系统,以及各种软件开发中,ContextMenu都扮演着重要的角色...

    如何为控件添加上下文菜单(visual studio C++源代码编写).net

    接着,我们需要添加一个控件来展示上下文菜单。通常我们会选择"Button"控件或其他交互式的控件,因为这些控件更容易触发上下文菜单。从工具箱中拖放一个"Button"控件到窗体上,并为其设置一个合适的名称,例如...

    ContextMenu 上下文选项菜单,长按后跳出菜单_android源码.zip

    在Android开发中,ContextMenu是一个非常重要的交互元素,它允许用户在长按某个视图或控件后弹出一个包含多种操作选项的菜单。这个上下文菜单通常用于提供与选定项目相关的特定操作,如编辑、删除、复制等。下面将...

    安卓Android源码——ContextMenu上下文选项菜单,长按后跳出菜单.zip

    这个压缩包文件"安卓Android源码——ContextMenu上下文选项菜单,长按后跳出菜单.zip"包含了一个名为"ContextMenuDemo"的示例项目,用于演示如何在应用程序中实现`ContextMenu`。 首先,让我们理解`ContextMenu`的...

    ContextMenu 上下文选项菜单,长按后跳出菜单.rar

    上下文选项菜单(ContextMenu)是用户界面设计中的一个重要元素,特别是在移动设备和计算机操作系统中,它为用户提供了一种快速访问与选定内容相关的操作的方式。在Android系统中,当用户长按一个视图或项目时,通常...

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

    View v,ContextMenu.ContextMenuInfo menuInfo)方法,此方法在每次调出上下文菜单时都会被调用一次,示例中添加了两个文本框,在这个方法中会判断用户单击了哪个文本框,然后定义了菜单项选中状态变化后的回调方法...

    精彩编程与编程技巧-在可编辑控件中创建一个新的上下文菜单...

    **标题**:“精彩编程与编程技巧-在可编辑控件中创建一个新的上下文菜单...” **描述**:“精彩编程与编程技巧-在可编辑控件中创建一个新的上下文菜单...” **知识点概述**: 在开发过程中,为用户提供更丰富的...

    jquery-contextMenu右键(左键)菜单插件

    `jQuery-contextMenu`是一款强大的JavaScript插件,专为创建功能丰富的上下文菜单而设计,能够处理大量的元素。这款插件不仅支持传统的右键点击触发,还可以根据需求设置为左键点击显示菜单,极大地提升了用户的交互...

    如何写上下文菜单

    上下文菜单是用户界面设计中的一个重要元素,它在用户与应用程序交互时提供了便捷的操作选项。在Android、iOS、Windows等操作系统以及许多Web应用中,上下文菜单常常扮演着快速访问功能的角色。当用户对特定视图执行...

    SilverLight 自定义右键菜单 ContextMenu

    要自定义右键菜单,我们需要创建一个新的UserControl,这个控件将作为我们的自定义ContextMenu。在这个UserControl中,我们可以使用ListBox或者其他可以响应鼠标右键点击的控件来构建菜单结构。每个ListBoxItem将...

    创建上下文菜单

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

    定制编辑框的上下文菜单

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

    Android应用源码之ContextMenu 上下文选项菜单,长按后跳出菜单_源码.zip

    在Android应用开发中,ContextMenu是用户界面中一个重要的交互元素,它允许用户在长按某个视图或项目时出现一个包含多个操作选项的菜单。这个压缩包中的源码提供了关于如何实现ContextMenu的一个实例,名为...

    C# ContextMenu 窗口右键菜单实现

    在C#编程中,`ContextMenu`是一个非常实用的控件,用于实现窗口或者控件上的右键菜单功能。本文将详细讲解如何在C#中利用`ContextMenu`来创建和使用窗口右键菜单。 首先,我们需要了解`ContextMenu`的基本概念。`...

    Android应用源码之ContextMenu 上下文选项菜单,长按后跳出菜单-IT计算机-毕业设计.zip

    在Android应用开发中,ContextMenu是用户界面中一个重要的交互元素,它通常在用户长按某个视图或元素时出现,提供一系列与该视图相关的操作选项。本项目以"ContextMenu"为主题,旨在帮助毕业设计的学生深入理解并...

Global site tag (gtag.js) - Google Analytics