Android 菜单——上下文菜单、选择菜单以及子菜单

来源:互联网 发布:mac版 photos 编辑:程序博客网 时间:2024/06/12 19:13

本文主要介绍标签控件上下文菜单、选择菜单以及子菜单的实现,具体操作看代码。

一、上下文菜单ContextMenu

1.ContextMenuActivity.java 

public class ContextMenuActivity extends Activity {private final static int ITEM0=Menu.FIRST;private final static int ITEM1=Menu.FIRST+1;private final static int ITEM2=Menu.FIRST+2;private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.context_menu);setTitle("单击Menu键看到效果!");tv=(TextView)findViewById(R.id.tv1);this.registerForContextMenu(tv);//将上下文注册到TextView}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.add(0, ITEM0, 0, "红色背景");menu.add(0,ITEM1,0,"绿色背景");menu.add(0,ITEM2,0,"白色背景");}@Overridepublic boolean onContextItemSelected(MenuItem item) {switch (item.getItemId()) {case ITEM0:tv.setTextColor(Color.RED);break;case ITEM1:tv.setTextColor(Color.GREEN);break;case ITEM2:tv.setTextColor(Color.WHITE);break;default:break;}return true;}}

2.布局文件context_menu.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView  android:id="@+id/tv1"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="长按这里触发"    android:textSize="50dip"    />    </LinearLayout>

3.注意:需要在AndroidManifest.xml注册相应Activity.


二、选择菜单OptionsMenu

1.OptionsMenuActivity.java

//OptionsMenu测试public class OptionsMenuActivity extends Activity {private final static int ITEM0=Menu.FIRST;private final static int ITEM1=Menu.FIRST+1;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setTitle("单击Menu键看到效果!");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {//第一个参数:组ID  第二个参数:菜单项ID 第三个参数:顺序号 第四个参数:菜单项上显示的内容menu.add(0,ITEM0,0,"开始");menu.add(0,ITEM1,0,"结束");return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case ITEM0:setTitle("开始游戏");break;case ITEM1:setTitle("结束游戏");break;default:break;}return true;}}

2.注意:需要在AndroidManifest.xml注册相应Activity.


三、子菜单SubMenu

1. SubMenuActivity.java

//子菜单subMenupublic class SubMenuActivity extends Activity {private final static int ITEM_NEW_FILE=Menu.FIRST;private final static int ITEM_OPEN_FILE=Menu.FIRST+1;private final static int ITEM_COPY=Menu.FIRST+2;private final static int ITEM_CLOSE=Menu.FIRST+3;private final static int ITEM_SAVE=Menu.FIRST+4;private final static int ITEM_SAVE_ALL=Menu.FIRST+5;private final static int ITEM_CUT=Menu.FIRST+6;private final static int ITEM_PASTE=Menu.FIRST+7;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.sub_menu);setTitle("单击Menu键看到效果!");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {SubMenu file=menu.addSubMenu("文件");SubMenu edit=menu.addSubMenu("编辑");file.add(0,ITEM_NEW_FILE,0,"新建");file.add(0,ITEM_OPEN_FILE,0,"打开");file.add(0,ITEM_CLOSE,0,"关闭");file.add(0,ITEM_SAVE,0,"保存");file.add(0,ITEM_SAVE_ALL,0,"保存全部");edit.add(0,ITEM_COPY,0,"复制");edit.add(0,ITEM_CUT,0,"剪切");edit.add(0,ITEM_PASTE,0,"粘贴");return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case ITEM_NEW_FILE:setTitle("新建文件!");break;case ITEM_OPEN_FILE:setTitle("打开文件");break;case ITEM_COPY:setTitle("复制文件");break;default:break;}return true;}}

2.布局文件sub_menu.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="子菜单操作"    />    </LinearLayout>

3.注意:需要在AndroidManifest.xml注册相应Activity.

0 0