上下文菜单(ContextMenu)

上下文菜单不同于 Windows 菜单,需要长按才能出现子菜单。

ContextMenu 类方法

阅读《Android 从入门到精通》(26)——上下文菜单_第1张图片

ContextMenu 示例

完整工程:http://download.csdn.net/detail/sweetloveft/9435611

1.MainActivity.java

package com.sweetlover.activity;import com.sweetlover.contextmenu.R;import android.app.Activity;import android.os.Bundle;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.SubMenu;import android.view.View;import android.widget.TextView;public class MainActivity extends Activity {private TextView tv1 = null;private TextView tv2 = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv1 = (TextView)findViewById(R.id.textView1);tv2 = (TextView)findViewById(R.id.textView2);// 将控件注册到上下文之中registerForContextMenu(tv1);registerForContextMenu(tv2);}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stubsuper.onCreateContextMenu(menu, v, menuInfo);if (v == tv1) {menu.setHeaderIcon(R.drawable.miku);menu.setHeaderTitle("我的菜单");menu.add(1, 0, 0, "菜单1");menu.add(1, 1, 1, "菜单2");for (int i = 3; i < 8; i++)menu.add(1, 1, 2, "菜单" + i);} else if (v == tv2) {SubMenu[] subMenu = new SubMenu[6];subMenu[0] = menu.addSubMenu("二级菜单1");subMenu[0].setHeaderIcon(R.drawable.miku);subMenu[0].add(0, 0, 0, "二级菜单1/菜单1");subMenu[0].add(0, 1, 1, "二级彩单1/菜单2");subMenu[0].setGroupCheckable(1, true, true);// 设置整个组可选subMenu[1] = menu.addSubMenu("二级菜单2");subMenu[1].setHeaderIcon(R.drawable.miku);subMenu[1].add(1, 0, 0, "二级菜单2/菜单1");subMenu[1].add(1, 1, 1, "二级彩单2/菜单2");subMenu[1].setGroupCheckable(1, true, true);// 设置整个组可选subMenu[2] = menu.addSubMenu("二级菜单3");subMenu[2].setHeaderIcon(R.drawable.miku);subMenu[2].add(1, 0, 0, "二级菜单3/菜单1");subMenu[2].add(1, 1, 1, "二级彩单3/菜单2");subMenu[2].setGroupCheckable(1, true, true);// 设置整个组可选subMenu[3] = menu.addSubMenu("二级菜单4");subMenu[3].setHeaderIcon(R.drawable.miku);subMenu[3].add(1, 0, 0, "二级菜单4/菜单1");subMenu[3].add(1, 1, 1, "二级彩单4/菜单2");subMenu[3].setGroupCheckable(1, true, true);// 设置整个组可选subMenu[4] = menu.addSubMenu("二级菜单5");subMenu[4].setHeaderIcon(R.drawable.miku);subMenu[4].add(1, 0, 0, "二级菜单5/菜单1");subMenu[4].add(1, 1, 1, "二级彩单5/菜单2");subMenu[4].setGroupCheckable(1, true, true);// 设置整个组可选subMenu[5] = menu.addSubMenu("二级菜单6");subMenu[5].setHeaderIcon(R.drawable.miku);subMenu[5].add(1, 0, 0, "二级菜单6/菜单1");subMenu[5].add(1, 1, 1, "二级彩单6/菜单2");subMenu[5].setGroupCheckable(1, true, true);// 设置整个组可选}}}

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/note"        android:textAppearance="?android:attr/textAppearanceMedium" />    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/item1"        android:textAppearance="?android:attr/textAppearanceMedium" />    <TextView        android:id="@+id/textView2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/item2"        android:textAppearance="?android:attr/textAppearanceMedium" /></LinearLayout>

3.string.xml

<resources>    <string name="app_name">ContextMenu</string>    <string name="note">长时间按住显示菜单</string>    <string name="item1">主菜单1</string>    <string name="item2">主菜单2</string></resources>


更多相关文章

  1. Android 自定义弹出菜单和对话框
  2. android UI学习 -- 设置界面的布局(包括style的使用,selector的
  3. [AndroidUI]使用DrawerLayout实现侧滑菜单
  4. Android 实现导航菜单左右滑动效果
  5. Android 添加菜单和返回按钮
  6. Android基本之Menu菜单
  7. Android: 如何在Fragment中使用上下文Context
  8. Android菜单(Menu) - 4
  9. android底部菜单栏的实现和百度地图API的使用

随机推荐

  1. 如何在Android中获知屏幕打开或者关闭
  2. android:gravity ,和 android:layout_grav
  3. Windows下给Android(安卓)app进行系统签
  4. android性能测试systrace
  5. android 备忘
  6. Android异步处理二:使用AsyncTask异步更新
  7. Android学习系列之一
  8. [学习笔记-Android]EditText属性
  9. Android——导入已存在的android工程时出
  10. 基于NDK的Android防破解& Android防破解