设置与菜单项关联的Activity

时间:2023-03-09 03:58:56
设置与菜单项关联的Activity

有些时候,应用程序需要单击某个菜单项时启动其他Activity(包括其他Service)。对于这种需求,Android设置不需要开发者编写任何事件处理代码,只要调用MenuItem的setIntent(Intent intent)方法即可——该方法把该菜单项与指定Intent关联到一起,当用户单击该菜单时,该Intent所代表的组件将会被启动。

如下程序示范了如何通过菜单项来启动指定Activity。该程序几乎不包含任何界面组件,因此不给出界面布局文件。该程序的Java文件如下。

package org.crazyit.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu; public class ActivityMenu extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
//---------------------向menu中添加子菜单-----------------
SubMenu prog=menu.addSubMenu("启动程序");
//设置菜单头的图标
prog.setHeaderIcon(R.drawable.tools);
//设置菜单头的标题
prog.setHeaderTitle("选择您要启动的程序");
//添加菜单项
MenuItem item=prog.add("查看经典Java EE");
//为菜单项设置关联的Activity
item.setIntent(new Intent(this,org.crazyit.helloworld.AlertDialogTest.class)); // Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.activity_menu, menu);
//return true;
return super.onCreateOptionsMenu(menu);
} }