Android 上下文菜单实现
来源:互联网 发布:网络暴力的定义 编辑:程序博客网 时间:2024/05/18 18:42
首先解释一下什么是上下文菜单,Android中上下文菜单就是ContextMenu。他的效果就像是PC机上的鼠标右键,当为一个视图注册了上下文菜单之后,长按(2秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单。任何视图都可以注册上下文菜单,不过,最常见的是用于列表视图ListView的item。
下面讲讲实现过程:
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
publicvoidonCreate(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(MenuItemitem){
//获取当前被选择的菜单项的信息
//AdapterContextMenuInfoinfo=(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 上下文菜单实现
- Android 上下文菜单实现
- android 实现上下文菜单实例
- 【Android】菜单功能的实现:上下文菜单
- Android 上下文菜单实现 context Menu
- MFC 实现上下文菜单
- QT 实现上下文菜单
- [android]上下文菜单
- Android--ContextMenu上下文菜单
- Android上下文菜单
- Android 上下文菜单
- android 上下文菜单
- 【Android】上下文菜单contextMenu
- android上下文菜单
- Android上下文菜单 ContextMenu
- Android上下文菜单
- Android-ContextMenu上下文菜单
- IO输入与输出
- Android视频采集
- 图文介绍--光纤接口类型
- 破解无线网--BacktrackLinux
- JDK1.5中线程池的简单使用(java.util.concurrent.ThreadPoolExecut )
- Android 上下文菜单实现
- typedef struct与struct的区别
- [Java]基于J2ME的在线购物系统研究
- NetBeans php 代码折叠 code collapse 高级技巧
- 比较目录A和目录B下的文件的不同
- 自己收藏的一些工作常用项
- 简单的级联菜单
- J2ME的五子棋游戏蓝牙联机对战研究
- Tomcat 使用Sun JDK出现 PermGen space 解决方案