Android 的上下文菜单: Context Menu
来源:互联网 发布:mac book 不能升级 编辑:程序博客网 时间:2024/05/05 01:59
概述:
Android 的上下文菜单类似于 PC 上的右键菜单。当为一个视图注册了上下文菜单之后,长按(2 秒左右)这个视图对象就会弹出一个浮动菜单,即上下文菜单。任何视图都可以注册上下文菜单,不过,最常见的是用于列表视图ListView的item。
注意:Android 的上下文菜单不支持图标或快捷键。
创建一个上下文菜单的步骤:
1. 覆盖 Activity 的 onCreateContenxtMenu() 方法,调用 Menu 的 add 方法添加菜单项(MenuItem)。
2. 覆盖 Activity 的 onContextItemSelected() 方法,响应上下文菜单菜单项的单击事件。
3. 调用 registerForContextMenu() 方法,为视图注册上下文菜单。
示例:
MainActivity.java 文件:
//file name: MainActivity.javapackage hi.braincol.local.contextMenu;import android.app.ListActivity;import android.os.Bundle;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.ContextMenu.ContextMenuInfo;import android.view.View;import android.widget.AdapterView.AdapterContextMenuInfo;import android.widget.ArrayAdapter;import android.util.Log;public class MainActivity extends ListActivity { private static final int ITEM1 = Menu.FIRST; private static final int ITEM2 = Menu.FIRST+1; private static final int ITEM3 = Menu.FIRST+2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); showListView(); //为 ListView 的所有 item 注册 ContextMenu registerForContextMenu(getListView()); //这里的registerForContextMenu()也可以用下面的语句替代 //getListView().setOnCreateContextMenuListener(this); } private void showListView(){ String[] mString = new String[]{ "路飞-Monkey D Luffy", "奈美-Nami", "卓洛-Zoro", "山治-Sanji", "尼可·罗宾-Ms. All Sunday", "乌索普-usoppu", "托尼托尼·乔巴-Tony Tony Chopper", }; ArrayAdapter<String> mla = new ArrayAdapter<String>(MainActivity.this, R.layout.main, mString); MainActivity.this.setListAdapter(mla); } //上下文菜单,本例会通过长按条目激活上下文菜单 @Override public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) { menu.setHeaderTitle("人物简介"); //添加菜单项 menu.add(0, ITEM1, 0, "特长"); menu.add(0, ITEM2, 0, "战斗力"); menu.add(0, ITEM3, 0, "经典语录"); } //菜单单击响应 @Override public boolean onContextItemSelected(MenuItem item){ //获取当前被选择的菜单项的信息 //AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo(); //Log.i("braincol",String.valueOf(info.id)); switch(item.getItemId()){ case ITEM1: //在这里添加处理代码 break; case ITEM2: //在这里添加处理代码 break; case ITEM3: //在这里添加处理代码 break; } return true; } }
main.xml 布局文件:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns: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"
/>
运行结果:
转载自:http://www.cnblogs.com/hibraincol/archive/2010/09/30/1839014.html
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- Android 的上下文菜单: Context Menu
- android的上下文菜单---context menu
- Android 的上下文菜单: Context Menu
- android的上下文菜单---context menu
- android 上下文菜单Context Menu
- android 上下文菜单Context Menu
- android 上下文菜单Context Menu
- android上下文菜单Context Menu
- Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
- Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
- 5.4 Android 的上下文菜单: Context Menu,registerForContextMenu(getListView())
- Context Menu上下文菜单
- Android 上下文菜单实现 context Menu
- Android Bluetooth Stack: Bluedroid(一):综述
- EasyUI自定义边框分割线样式
- 小总结
- 厦门一网站“购物返利” 新型传销非法“吸”7000多万
- S5PV210的16bit硬件ECC校验
- Android 的上下文菜单: Context Menu
- 抽象数据类型ADT
- 设置Tomcat默认访问路径
- 思维导图
- uva 579 - ClockHands
- 使用WPF的Generic.xaml加载样式的注意事项
- 6410之写跳转到c函数中运行
- 令编程开发者头痛的16种方式
- Arduino Due, Maple and Teensy3.0 的 W5200性能测试