- 浏览: 560233 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
北月与南安:
哥哥不要秀我,答案是11.38,你算出来36.43,要求N个点 ...
平均距离 -
xiao_android_jun:
[color=red][ size=xx-small ...
Android 之 进程的概念介绍 -
明子健:
小伙子,很有前途哦
《将博客搬至CSDN》 -
1140566087:
dugujiujian 写道R.layout.simple_s ...
Android 之 下拉(Spinner) 组件示例 -
dugujiujian:
R.layout.simple_spinner_dropdow ...
Android 之 下拉(Spinner) 组件示例
/* 上下文菜单测试
概念介绍:
Android中的上下文菜单就是Context Menu ,效果就向PC机上鼠标右键,当为一个
视图注册了上下文菜单之后,长按这个视图对象就会弹出一个浮动菜单,就是上下文
菜单,任何视图都可以注册上下文菜单,可以最常见的还是用于列表ListView 的item项
实现过程:
* 知识点:创建上下文菜单(Context Menu) 需要实现两个方法:
* 1、覆写Activity的onContextItemSelected(MenuItem item),调用Menu的add方法添加菜单项;
* 2、覆写Activity的onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuinfo);
相应上下文菜单的单击事件;
3、调用registerForContextMenu()方法,为视图注册上下文菜单;
java实现代码:
概念介绍:
Android中的上下文菜单就是Context Menu ,效果就向PC机上鼠标右键,当为一个
视图注册了上下文菜单之后,长按这个视图对象就会弹出一个浮动菜单,就是上下文
菜单,任何视图都可以注册上下文菜单,可以最常见的还是用于列表ListView 的item项
实现过程:
* 知识点:创建上下文菜单(Context Menu) 需要实现两个方法:
* 1、覆写Activity的onContextItemSelected(MenuItem item),调用Menu的add方法添加菜单项;
* 2、覆写Activity的onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuinfo);
相应上下文菜单的单击事件;
3、调用registerForContextMenu()方法,为视图注册上下文菜单;
java实现代码:
package com.example.context_menu; import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; /* 盲点:@符号引用的是什么??? * */ public class MainActivity extends Activity { /* 变量保存上下文菜单项中的ID号 */ private final int item = Menu.FIRST; private final int item1 = item; private final int item2 = item+1; private final int item3 = item2+1; private final int item4 = item3+1; private int tempID = 0; //用于保存用户选择的人物ID号; private ListView listview ; /* ListView 里面的数据对象 */ private ArrayList<String> list = new ArrayList<String>(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* 获取ListView 的对象 */ listview = (ListView) findViewById(R.id.listview); /* M 获取数据 */ list.add("Monkey.D.Lully"); list.add("Roronoa Zoro"); list.add("Nami"); list.add("Usopp"); list.add("Sanji"); list.add("Tony Tony Chopper"); list.add("Nico Robin"); /* C 实现M与C 的关系 , 进行数据绑定 */ ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); /* V 实现C与V 的纽带关系,进行数据显示 */ listview.setAdapter(adapter); /* 设置长按监听事件 */ listview.setOnItemLongClickListener(long_listener); } /* 编写:列表ListView的长按事件 */ OnItemLongClickListener long_listener = new OnItemLongClickListener() { public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int id, long positive) { /* 注册上下文菜单 *//* 为了保证长按事件和上下文菜单同时的实现,需将上下文注册写在长按事件中 */ registerForContextMenu(listview); tempID = id; // Toast.makeText(MainActivity.this, "当前选择的人物为:"+list.get(id), 3000).show(); return false; } }; /* 重写onCreateContextMenu方法 , 用于创建上下文菜单 */ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub /* 设置上下文菜单的标头 */ menu.setHeaderTitle(getResources().getString(R.string.context_menu_title)); menu.setHeaderIcon(R.drawable.ic_launcher); /* 添加上下文菜单项 */ menu.add(Menu.NONE, item1,0, getResources().getString(R.string.contenxt_menu_1)); menu.add(Menu.NONE, item2,0, getResources().getString(R.string.contenxt_menu_2)); menu.add(Menu.NONE, item3,0, getResources().getString(R.string.contenxt_menu_3)); menu.add(Menu.NONE, item4,0, getResources().getString(R.string.contenxt_menu_4)); super.onCreateContextMenu(menu, v, menuInfo); } /* 相应上下文菜单的点击事件 *//* 通过提示对话框来显示人物的相关信息 */ public boolean onContextItemSelected(MenuItem item) { /* 获取选项菜单总的数据信息 */ System.out.println("测试item的值:"+item); Builder builder = new Builder(this); String temp = ""; /* 通过不同的选项或得到了不同人物不同属性的值,保存在变量temp中 */ temp = this.getInfoForPerson(item.getItemId()); /* 创建对话框,用于显示用户得到的数据信息 */ builder.setTitle("人物:"+list.get(tempID)); builder.setMessage(item+"为:"+temp); /* 设置一个按钮 */ builder.setPositiveButton("Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "欢迎下次再次查看", 1000).show(); } }); builder.create().show(); return super.onContextItemSelected(item); } /* 方法:获取当前选择的人物,并根据菜单选项的不同返回对应的信息; *//* 接收不同ID,返回不同人物的不同的属性 */ public String getInfoForPerson(int context_id){ String temp = ""; switch(tempID){ case 0: //Monkey.D.Lully temp = this.getAttributeFor0(context_id); break; case 1: //Roronoa Zoro temp =this.getAttributeFor1(context_id); break; case 2: //Nami temp =this.getAttributeFor2(context_id); break; case 3: //Usopp temp =this.getAttributeFor3(context_id); break; case 4: //Sanji temp =this.getAttributeFor4(context_id); break; case 5: //Tony Tony Chopper temp =this.getAttributeFor5(context_id); break; case 6: //Nico Robin temp =this.getAttributeFor6(context_id); break; } return temp; } /* 获取每个人物的属性,通过选项ID ,来判断用户需要获得哪种属性 */ //Monkey.D.Lully public String getAttributeFor0(int context_id){ String temp = ""; switch(context_id){ case item1: //技能 temp = "橡胶攻击绝杀"; break; case item2: //战斗力 temp = "无限"; break; case item3: //语录 temp = "海贼王我当定了"; break; case item4: //职位 temp = "草帽海贼团船长"; break; } return temp; } //Roronoa Zoro public String getAttributeFor1(int context_id){ String temp = ""; switch(context_id){ case item1: //技能 temp = "三刀流"; break; case item2: //战斗力 temp = "无限"; break; case item3: //语录 temp = "切,鬼斩"; break; case item4: //职位 temp = "剑士"; break; } return temp; } //Nami public String getAttributeFor2(int context_id){ String temp = ""; switch(context_id){ case item1: //技能 temp = "镭射枪"; break; case item2: //战斗力 temp = "有限"; break; case item3: //语录 temp = "冰果"; break; case item4: //职位 temp = "航海士"; break; } return temp; } //Usopp public String getAttributeFor3(int context_id){ String temp = ""; switch(context_id){ case item1: //技能 temp = "草之心"; break; case item2: //战斗力 temp = "遇强则强"; break; case item3: //语录 temp = "必杀"; break; case item4: //职位 temp = "炮手"; break; } return temp; } //Sanji public String getAttributeFor4(int context_id){ String temp = ""; switch(context_id){ case item1: //技能 temp = "月步"; break; case item2: //战斗力 temp = "牛逼"; break; case item3: //语录 temp = "臭剑士"; break; case item4: //职位 temp = "厨师"; break; } return temp; } //Tony Tony Chopper public String getAttributeFor5(int context_id){ String temp = ""; switch(context_id){ case item1: //技能 temp = "激光大炮"; break; case item2: //战斗力 temp = "无限"; break; case item3: //语录 temp = "super"; break; case item4: //职位 temp = "船工"; break; } return temp; } //Nico Robin public String getAttributeFor6(int context_id){ String temp = ""; switch(context_id){ case item1: //技能 temp = "万花手"; break; case item2: //战斗力 temp = "无限"; break; case item3: //语录 temp = "呵呵"; break; case item4: //职位 temp = "考古学家"; break; } return temp; } }
发表评论
-
Android 之 网络访问服务器,解析JSON数据
2014-03-28 22:50 3421提示:在访问网络,或者服务器的数据一定要注意 网络权限的声明: ... -
Android 之 AsyncTask 异步任务
2014-03-20 08:44 3525Android ... -
Android 之 Looper Handler Message 之间的关系
2014-03-19 10:16 3671Android 的消息 ... -
Android 之 多线程与Socket联合使用案例
2014-03-19 10:15 2683多线 ... -
Android 之 多线程和Socket套接字的使用介绍
2014-03-19 10:15 4889And ... -
Android 之 实现Runnable 接口与继承Thread的区别
2014-03-19 10:15 2203实现Runnable 接口 相 ... -
Android 之 GSON解析JSON数据
2014-03-19 10:14 4499... -
Android 之 使用Pull 解析xml文件
2014-03-18 21:04 1052/** * 使用Pull进行 xml 文件的解析 ... -
Android 之 使用DOM解析xml文件
2014-03-18 21:02 2749DOM 解析 xml 格式的文件 1、 xml简介:xml ... -
Android 之 百度API 密钥安全码生成
2014-03-04 22:29 2419近期要做个关于旅游助手的应用,开始接触百度API了。大神们 ... -
Android 之 EditText属性用法介绍
2014-01-06 23:49 3996EditText的属性 EditText继承关系:View-- ... -
Android 之 自定义适配器
2014-01-08 10:40 1787自定义适配器 1、实现 * 自定义适配器要继承 BaseA ... -
Android 之 自定义控件用法介绍
2014-01-08 10:40 1721自定义效果:实现:图片和文字混合 首先创建需要组合的子布局: ... -
Android 之 资源自适应与国际化
2014-01-08 10:40 3087<!-- 国际化和资源自适应 ... -
Android 之 Parcelable 序列化
2014-01-08 10:41 2702/* 序列化 * * 作 ... -
Android 之 五大布局案例
2014-01-08 10:41 21361、LinearLayout 线性布局例子: <Lin ... -
Android 之 通知Notification
2014-03-03 22:30 3904Notification 和 NotificationMana ... -
Android 之 手机全屏显示
2014-03-03 22:30 2351/* 1、全屏状态的显示 介绍:Android 中提供了Wi ... -
Android 之 拦截手机短信并自动转发
2014-03-03 22:29 5436拦截短信和发送短信都需要相关的权限: <?xml ve ... -
Android 之 将RAW资源文件写入SD卡工具类
2014-03-01 10:09 3622package com.sun.coptfiletosd; ...
相关推荐
Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...
在Android应用开发中,上下文菜单(Context Menu)和上下文操作模式(Contextual Action Mode)是两种常见的用户交互设计,它们提供了在特定情境下对数据进行操作的界面。这两种设计模式在处理列表、网格或其他可选元素...
在Android应用开发中,上下文菜单(Context Menu)、选项菜单(OptionsMenu)和子菜单(Submenu)是三种重要的交互方式,用于提供用户与应用界面的多种操作选项。它们各自有不同的应用场景和设计规范,对于提升用户体验至...
在Android应用开发中,选项菜单(OptionsMenu)和上下文菜单(ContextMenu)是两种常见的交互方式,用于提供用户在特定场景下的操作选择。本项目通过Android Studio实现,将这两种菜单集成在一个应用中,使得用户...
在Android开发中,上下文菜单(Context Menu)是一种常见的交互元素,它允许用户在长按某个视图或项时出现一个包含相关操作的弹出菜单。上下文菜单通常用于提供与特定视图或数据相关的动作选项,而不是全局的操作。在...
本案例深入探讨了菜单的三种主要类型:普通菜单(Option Menu)、子菜单(Submenu)以及上下文菜单(Context Menu)。下面将详细阐述这三种菜单的使用方法、特点及其实现代码。 1. 普通菜单(Option Menu) 普通菜单通常...
接下来是上下文菜单(Context Menu),它是在用户长时间按压某个视图元素时出现的临时菜单,提供了与该特定元素相关的操作。上下文菜单的注册是在Activity的`registerForContextMenu(View view)`方法中完成,而展示...
【Context-Menu.Android源码】是一个专门为Android平台设计的开源项目,主要目的是提供一个自定义上下文菜单(Context Menu)的实现。在Android系统中,上下文菜单通常用于响应长按事件,显示与选定项相关的操作选项...
上下文菜单,也被称为右键菜单,是计算机用户界面中的一种常见交互元素,它提供了与当前屏幕内容相关的操作选项。当用户在特定区域(如文件、图标或文本)上单击鼠标右键时,上下文菜单会弹出,显示与该选定对象相关...
本教程将深入探讨如何使用Kotlin实现上下文菜单(Context Menu),这对于任何想要提升Android应用交互体验的初学者来说是十分重要的知识点。 首先,我们需要理解上下文菜单的概念。在Android中,上下文菜单(Context ...
本篇文章将深入解析如何使用上下文菜单(Context Menu),这是Menu的一种特殊形式,通常在长按操作后出现。上下文菜单提供了针对特定视图或数据项的操作,为用户提供了一种直观的方式来执行与当前环境相关的动作。 ...
在Android、iOS、Windows等操作系统以及许多Web应用中,上下文菜单常常扮演着快速访问功能的角色。当用户对特定视图执行长按操作时,上下文菜单会弹出,显示与该视图相关的动作或选项。这种设计极大地提高了用户体验...
在Android开发中,"上下文菜单(Context Menu)"和"ListView"是两个非常重要的组件,尤其在构建用户交互界面时。本文将深入探讨如何在Eclipse环境下利用这两个组件创建一个功能完善的移动应用。 首先,让我们了解**上...
在上面的代码中,`R.menu.context_menu`是指向XML布局文件的引用,该文件定义了上下文菜单的各个条目。 ### 2. 定义菜单资源 在`res/menu`目录下创建一个XML文件,例如`context_menu.xml`,并定义菜单项: ```xml...
本示例“WebView上下文菜单demo”专注于实现WebView的上下文菜单(ContextMenu),通过自定义菜单功能,如复制文本等,提升用户在浏览网页时的交互体验。 `ContextMenu`是Android系统提供的一种用户界面元素,当用户...
这里的`@menu/context_menu`引用了我们在`res/menu`目录下创建的上下文菜单资源文件。 接下来,我们需要在Activity中重写以下几个方法来处理上下文菜单的相关逻辑: 1. `onCreateContextMenu(ContextMenu menu, ...
在编程和软件开发中,上下文菜单(Context Menu)是一种常用的人机交互元素,它根据用户的操作环境提供相关的操作选项。在编辑框中,上下文菜单通常包含与文本操作相关的命令,如复制、粘贴、剪切等。本文将深入探讨...
总的来说,`Yalantis/Context-Menu.Android`为Android开发者提供了一个强大且易用的工具,用于创建具有视觉吸引力的上下文菜单。通过利用这个库,你可以提升应用的用户体验,使用户在享受动画效果的同时,更便捷地...
Android中的Menu主要分为三类:Option Menu(主菜单)、Context Menu(上下文菜单)和PopupMenu(弹出式菜单)。Option Menu通常在ActionBar或Toolbar中显示,而Context Menu则在长按某个视图时出现,PopupMenu可以...
标题中的“2011.09.23——— android sample之Notepad(context menu)”表明这是一个关于Android应用开发的示例项目,具体是针对Notepad应用的上下文菜单(Context Menu)功能的实践。在Android开发中,上下文菜单是...