1.覆盖Activity的onCreateContenxtMenu()方法,调用Menu的add方法添加菜单项(MenuItem)。
  2.覆盖Activity的onContextItemSelected()方法,响应上下文菜单菜单项的单击事件。
  3.调用registerForContextMenu()方法,为视图注册上下文菜单。
  
  JAVA代码:

  packageEOE.local.contextMenu;
  
  importandroid.app.ListActivity;
  importandroid.os.Bundle;
  importandroid.view.ContextMenu;
  importandroid.view.Menu;
  importandroid.view.MenuItem;
  importandroid.view.ContextMenu.ContextMenuInfo;
  importandroid.view.View;
  importandroid.widget.AdapterView.AdapterContextMenuInfo;
  importandroid.widget.ArrayAdapter;
  importandroid.util.Log;
  
  publicclassMainActivityextendsListActivity{
  
  privatestaticfinalintITEM1=Menu.FIRST;
  
  privatestaticfinalintITEM2=Menu.FIRST+1;
  
  privatestaticfinalintITEM3=Menu.FIRST+2;
  
  
  
  /**Calledwhentheactivityisfirstcreated.*/
  
  @Override
  public void onCreate(BundlesavedInstanceState){
  
  super.onCreate(savedInstanceState);
  
  showListView();
  
  
  //为ListView的所有item注册ContextMenu
  
  registerForContextMenu(getListView());
  
  //这里的registerForContextMenu()也可以用下面的语句替代
  
  //getListView().setOnCreateContextMenuListener(this);
  
  }
  
  
  
  privatevoidshowListView(){
  
  String[]mString=newString[]{
  
  "路飞-MonkeyDLuffy",
  "奈美-Nami",
  "卓洛-Zoro",
  "山治-Sanji",
  "尼可·罗宾-Ms.AllSunday",
  "乌索普-usoppu",
  "托尼托尼·乔巴-TonyTonyChopper",
  
  };
  
  ArrayAdapter<String>mla=newArrayAdapter<String>(MainActivity.this,
  
  R.layout.main,mString);
  
  MainActivity.this.setListAdapter(mla);
  
  }
  
  
  //上下文菜单,本例会通过长按条目激活上下文菜单
  @Override
  publicvoidonCreateContextMenu(ContextMenumenu,Viewview,
  
  ContextMenuInfomenuInfo){
  
  menu.setHeaderTitle("人物简介");
  
  //添加菜单项
  menu.add(0,ITEM1,0,"特长");
  
  menu.add(0,ITEM2,0,"战斗力");
  
  menu.add(0,ITEM3,0,"经典语录");
  
  }
  
  
  
  //菜单单击响应
  @Override
  publicbooleanonContextItemSelected(MenuItem item){
  
  //获取当前被选择的菜单项的信息
  
  //AdapterContextMenuInfo info=(AdapterContextMenuInfo)item.getMenuInfo();
  
  //Log.i("braincol",String.valueOf(info.id));
  
  switch(item.getItemId()){
  
  caseITEM1:
  
  //在这里添加处理代码
  
  break;
  
  
  
  caseITEM2:
  
  //在这里添加处理代码
  break;
  
  
  
  caseITEM3:
  
  //在这里添加处理代码
  break;
  
  }
  
  returntrue;
  
  }
  
  
  }

  main.xml布局文件:
  
    <?xmlversion="1.0"encoding="utf-8"?>
  
  <TextViewxmlns: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"
  
  />

Android 上下文菜单实现的更多相关文章

  1. android上下文菜单

    XML: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmln ...

  2. android 上下文菜单详解

    本文使用xml来创建上下文菜单 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:andr ...

  3. Android上下文菜单ContentView详解

    ContentView介绍 上下文菜单继承了android.view.Menu,因此我们可以像操作Options Menu那样给上下文菜单增加菜单项.上下文菜单与Options Menu最大的不同在于 ...

  4. Android 上下文菜单 ContextMenu

    public class MainActivity extends Activity { private ListView listView; @Override protected void onC ...

  5. Android 上下文菜单 ActionMode

    public class MainActivity extends Activity { private Button button; private ActionMode actionMode; @ ...

  6. Android 上下文菜单 PopupMenu

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...

  7. 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)

    说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题, ...

  8. Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())

    概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...

  9. android 为组件添加contextMenu上下文菜单

    package com.example.fragmentNavigation2.fragment; import android.os.Bundle; import android.support.v ...

随机推荐

  1. 【转】Java的接口和抽象类的区别

    1.      抽象类和接口的区别 所谓抽象类是用来表征我们在对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象:所谓接口,相当于电源插座,可插入构件相当于 ...

  2. C++ 中的返回值

    C++中大致有三种返回值:值拷贝(副本),值引用和指针,返回什么类型的值要根据当时情况而定. 如果返回的是大型对象的副本,那么在每一次的函数调用后返回,都会调用该对象类型的拷贝构造函数构造一个新的副本 ...

  3. java基础回顾(一)—— sleep和wait的区别

    sleep是Thread类的一个方法,wait是Object类的一个方法 sleep是线程被调用时,占着cpu去睡觉,其他线程不能占用cpu,os认为该线程正在工作,不会让出系统资源 wait是进入等 ...

  4. 【MySQL】使用mysqlbinlog回滚

    参考:http://wubx.net/?s=mysqlbinlog mysql官方的mysqlbinlog没有回滚的功能,淘宝大牛对官方代码进行了修改使之能够将binlog中的DML操作变成互逆的语句 ...

  5. 织梦dedecms中html和xml格式的网站地图sitemap制作方法

    sitemap是网站上各网页的列表.创建并提交sitemap有助于百度(Google)发现并了解您网站上的所有网页,包括百度通过传统抓取方式可能找不到的网页.还可以使用sitemap提供有关你网站的其 ...

  6. .net读取ini配置文件的操作

    #region 读取和写入ini文件的操作   string inipath = System.Windows.Forms.Application.StartupPath + @"\conf ...

  7. Groovy安装与入门实例

    摘自: http://blog.csdn.net/dc_726/article/details/8576205 1 Groovy是什么? 来看下官网的介绍:http://groovy.codehaus ...

  8. 面向初学者的 Windows 10 UWP 应用开发

    眼看 Windows 10 for Mobile 正式版也快要推送了,就先挖个坑吧,原文视频链接为:Windows 10 development for absolute beginners,以下博客 ...

  9. 2. XAML

    1. 什么是 XAML XAML 可以说是 XML 的一个特殊子集,使用相同的语法,只是 XML 可以自定义任何的节点和属性,但 XAML 是有所限制的,只能在规定的命名空间下使用. 2. names ...

  10. 数据库mysql的基本命令

    问题分析 当数据量很大的时候,所有数据都集中在一个文本文件中的话,读写会很困难,内存消耗大,速度很慢 操作很麻烦,因为读写都要根据指定的格式尽心解析,不通用 每次获取数据都要全部数据重新读写,不能通过 ...