随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
有时候,应用程序需要单击某个菜单项时启动其他Activity(包括Service),这种情况只需调用MenuItem的setIntent()方法即可。本文在第二个页面中直接继承ListActivity,调用setListAdapter()方法,就可生成ListView列表,两个Activity不需要任何布局XML,代码如下:
MainActivity:
package com.lovo;
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 MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu prog = menu.addSubMenu("启动程序");
// 设置菜单的图标
prog.setIcon(R.drawable.ic_launcher);
// 设置菜单头的图标
prog.setHeaderIcon(R.drawable.ic_launcher);
// 设置菜单头的标题
prog.setHeaderTitle("选择你要启动的程序");
// 设置菜单项
MenuItem item = prog.add("查看常用程序语言");
// 为菜单项设置关联的Activity
item.setIntent(new Intent(this, TestListViewActivity.class));
return super.onCreateOptionsMenu(menu);
}
}
TestListViewActivity:
package com.lovo;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class TestListViewActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 列表项数组
String[] strs = { "Java", "C", "C++", "VB", ".NET","JSP","HTML" };
// 实例化数组适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, strs);
// 设置适配器
setListAdapter(adapter);
}
}