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. MSP430F149学习之路——蓝牙模块

    注意蓝牙模块的接法! #include <msp430x14x.h> ]; ; void int_clk() { BCSCTL1 &= ~XT2OFF; BCSCTL2 |= SE ...

  2. nginx 完全关闭 access_log

    修改nginx.config access_log off;

  3. linx 实用操作命令二

    pcre相关操作pcretest -C #查看pcre是否支持utf8 rpm -q -a #查看软件包列表rpm -ql pcre-7.8-6.el6.x86_64 #查看包安装的位置rpm -e ...

  4. swat主流域文件(file.cio)参数详解——引自http://blog.sciencenet.cn/blog-922140-710636.html

    % file.clo,即主流域文件用于文件管理,包括与模型选项.气候输入.数据库和输出控制相关的信息. Master Watershed File: file.cio Project Descript ...

  5. QTP操作论坛回复编辑框----webelement

    Set bp=browser("micclass:=browser","index:=0").page("micclass:=page") ...

  6. 【MySQL】触发器学习

    MySQL手册中对触发器的定义是: 触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象.表必须是永久性表,不能将触发程序与临时表与视图关联起来. 相同触发程序动作时间和事件的给定表 ...

  7. javaSE第十六天

    第十六天    140 1:List的子类(掌握)    140 (1)List的子类特点    140 (2)ArrayList    141 A:没有特有功能需要学习    141 B:案例    ...

  8. _func_

    __func__标识符 引用:http://blog.csdn.net/zhoujunyi/article/details/1572325 __func__是C99标准里面预定义标识符, 它是一个st ...

  9. pap与chap协议

    1.pap:直接在网络上发送密码明文 2.chap: 网络上发送的是密码的密文;server给client发一段随机数(challenge),client利用随机数对密码进行加密,将用户名和加密后的密 ...

  10. JAVA编程思想第一题出现错误

    //: object/E01_DefaultInitialization.java public class E01_DefaultInitialization{ int i ; char c ; p ...