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. 返回顶部js

    backToTop.js: (function () { var $backToTopEle = $('<div class="backToTop"></div& ...

  2. VB 读取csv文件数据

    Public adoConn As New ADODB.Connection Private Sub csv() adoConn.ConnectionString = "Driver={Mi ...

  3. 学习练习 java 输入输出流练习2

     编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt p ...

  4. jQuery Mask

    <script type="text/javascript" src="/assets/mask/jquery.mask.min.js"></ ...

  5. 智能指针(三):unique_ptr使用简介

    我们知道auto_ptr通过复制构造或者通过=赋值后,原来的auto_ptr对象就报废了.所有权转移到新的对象中去了.而通过shared_ptr可以让多个智能指针对象同时拥有某一块内存的访问权.但假如 ...

  6. SVN 记录冲突、忽略

    之前对SVN不熟悉,一碰到冲突就怕得要死,不知道应该怎么处理.今天必须要正视这个问题,研究一下. 一.冲突 SVN非常智能,它不像VSS那样,一个人在改的时候必须以独占的方式签出文件,导致其他人不能够 ...

  7. php获取文件创建时间、修改时间

    filemtime ( string filename ) 返回文件上次被修改的时间,出错时返回 FALSE.时间以 Unix 时间戳的方式返回,可用于 date(). 例如:$a=filemtime ...

  8. form 表单默认的提示

    <form method="get" action="" class="form">        <input type ...

  9. c# winform 关于DataGridView的一些操作(很全,绝对够用)

    转自:http://heisetoufa.iteye.com/blog/405317 设置字段名 设置字段值 设定单元格表示 Error图标 设定当前单元格 取得当前单元格内容 取得当前单元格的列 I ...

  10. java 求第n小的质数

    package a小米; import java.util.Scanner; public class prime { public static boolean isPrime(int n){ fo ...