设置与菜单项关联的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); } }