Android 上下文菜单实现
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 上下文菜单实现的更多相关文章
- android上下文菜单
XML: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...
- android 上下文菜单详解
本文使用xml来创建上下文菜单 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:andr ...
- Android上下文菜单ContentView详解
ContentView介绍 上下文菜单继承了android.view.Menu,因此我们可以像操作Options Menu那样给上下文菜单增加菜单项.上下文菜单与Options Menu最大的不同在于 ...
- Android 上下文菜单 ContextMenu
public class MainActivity extends Activity { private ListView listView; @Override protected void onC ...
- Android 上下文菜单 ActionMode
public class MainActivity extends Activity { private Button button; private ActionMode actionMode; @ ...
- Android 上下文菜单 PopupMenu
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...
- 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)
说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题, ...
- Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
概述: Android 的上下文菜单类似于 PC 上的右键菜单.当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单.任何视图都可以注册上下文菜单,不过, ...
- android 为组件添加contextMenu上下文菜单
package com.example.fragmentNavigation2.fragment; import android.os.Bundle; import android.support.v ...
随机推荐
- visio2007无法拖动
连按两下键盘上的 “Esc” 键
- linux C中va_list用法
#include <stdio.h> #include <stdarg.h> int demo( int, ... ); int main( void ) { demo(1, ...
- JAR包
1, 使用JAR文件 jar文件的全称是Java Archive File,意思就是Java档案文件,通常jar文件是一种压缩文件,与常见的ZIP压缩文件兼容,通常也被称为jar包,j ...
- 2016-03-15:关于VS中模块定义文件
1 def模块定义文件 在使用开源库libx265时,因x265项目的头文件x265中有如下的宏定义 #ifdef X265_API_IMPORTS #define X265_API __declsp ...
- 在CentOS 7上安装Python3.5源码包
最近开始系统学习Python 3.5,发现CentOS 7系统自带的python版本是Python 2.7.现在要使用Python 3.5该怎么办?方法大体跟安装其他程序一样.以下为详细经过: 1.事 ...
- CSS 属性设置优先级问题
1.多个选择器可能会选择同一个元素,有3个规则,从上到下重要性降低: !important的用户样式 !important的作者样式 作者样式 用户样式 浏览器定义的样式 2. CSS规范为不同类型的 ...
- ajax 清除缓存
$.ajax({ url : actionUrl , beforeSend :function(xmlHttp){ // deforeSend 是请求前清除缓存 ,如果没有缓存也不使用before ...
- console数据
- CentOS6.5下挂载NTFS格式的文件系统
下载对应CentOS版本的rpmforge,下载地址:http://pkgs.repoforge.org/rpmforge-release/ 安装rpmforge,输入命令:# rpm -ivh rp ...
- Linux文件和目录管理常用重要命令
一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 "路径" 以及 "相对路径" 与 "绝 ...