Android 的上下文菜单类似于 PC 上的右键菜单。当为一个视图注册了上下文菜单之后,长按这个视图对象就会弹出一个浮动菜单,即上下文菜单。任何视图都可以注册上下文菜单,最常见的是用于列表视图ListView的item。
注意:Android 的上下文菜单不支持图标或快捷键。
创建一个上下文菜单的步骤:
1. 覆盖 Activity 的 onCreateContenxtMenu() 方法,调用 Menu 的 add 方法添加菜单项(MenuItem)。
2. 覆盖 Activity 的 onContextItemSelected() 方法,响应上下文菜单菜单项的单击事件。
3. 调用 registerForContextMenu() 方法,为视图注册上下文菜单。
a 首先main.xml中添加一个ListView控件
b 添加一个list_item.xml文件内容为
-
<?xml version="1.0" encoding="utf-8"?>
-
<TextView xmlns:android=""
-
android:id="@+id/myTextView"
-
android:textSize="20sp"
-
android:layout_width="wrap_content"
-
android:layout_height="wrap_content"
-
-
/>
c 定义变量
private ListView listview;
private static final int ITEM1 = Menu.FIRST;
private static final int ITEM2 = Menu.FIRST+1;
private static final int ITEM3 = Menu.FIRST+2;
d 在onCreate中添加代码
-
listview =(ListView)findViewById(R.id.list);
-
String[] mString = new String[]{
-
"张三",
-
"王五",
-
"马六",
-
};
-
ArrayAdapter<String> mla = new ArrayAdapter<String>(this, R.layout.list_item_1, mString);
-
listview.setAdapter(mla);
-
this.registerForContextMenu(listview)
e 添加事件处理
-
//上下文菜单,本例会通过长按条目激活上下文菜单
-
@Override
-
public void onCreateContextMenu(ContextMenu menu, View view,
-
ContextMenuInfo menuInfo) {
-
menu.setHeaderTitle("简介");
-
//添加菜单项
-
menu.add(0, ITEM1, 0, "name");
-
menu.add(0, ITEM2, 0, "age");
-
menu.add(0, ITEM3, 0, "sex");
-
}
-
-
//菜单单击响应
-
@Override
-
public boolean onContextItemSelected(MenuItem item){
-
//获取当前被选择的菜单项的信息
-
//AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
-
switch(item.getItemId()){
-
case ITEM1:
-
//在这里添加处理代码
-
-
break;
-
case ITEM2:
-
//在这里添加处理代码
-
-
break;
-
case ITEM3:
-
//在这里添加处理代码
-
-
break;
-
}
-
return true;
-
}
阅读(399) | 评论(0) | 转发(0) |