在有些时候,应用程序需要单击某个菜单项时启动其他Activity (包括其他Service)。对 于这种需求,Android甚至不需要开发者编写任何事件处理代码,只要调用Memiltem的setlntent(lntent intent)方法即可 该方法把该菜单项与指定Intent关联到一起,当用户单击该菜单项时,该Intent所代表的组件将会被启动。
如下程序示范了如何通过菜单项来启动指定Activity。该程序几乎不包含任何界面组件, 因此不给出界面布局文件。该程序的Java文件如下。
程序清单:ActivityMenu\src\org\crazyit\menu\ActivityMenu.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。