在有些时候,应用程序需要单击某个菜单项时启动其他Activity (包括其他Service)。对 于这种需求,Android甚至不需要开发者编写任何事件处理代码,只要调用Memiltem的setlntent(lntent intent)方法即可 该方法把该菜单项与指定Intent关联到一起,当用户单击该菜单项时,该Intent所代表的组件将会被启动。
如下程序示范了如何通过菜单项来启动指定Activity。该程序几乎不包含任何界面组件, 因此不给出界面布局文件。该程序的Java文件如下。
程序清单:ActivityMenusrcorgcrazyitmenuActivityMenu.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package org.crazyit.menu; import org.crazyit.menu.R; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; public class ActivityMenu extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); } @Override public boolean onCreateOptionsMenu(Menu menu) { // -------------向menu中添加子菜单------------- SubMenu prog = menu.addSubMenu( "启动程序" ); // 设置菜单的图标 prog.setIcon(R.drawable.tools); // 设置菜单头的图标 prog.setHeaderIcon(R.drawable.tools); // 设置菜单头的标题 prog.setHeaderTitle( "选择您要启动的程序" ); // 添加菜单项 MenuItem item = prog.add( "查看经典Java EE" ); //为菜单项设置关联的Activity item.setIntent( new Intent( this , OtherActivity. class )); return super .onCreateOptionsMenu(menu); } } </activity> |
运行上面的程序,打开“启动程序”菜单
单击子菜单中的“査看经典Java EE”即可启 动另一个 Activity: OtherActivity。