第七课:Activity 及其子类的使用一:LauncherActivity

本文详细介绍了Android Activity的主要子类特性与用途,并通过实例展示了如何利用LauncherActivity开发启动Activity的列表界面。此外,文章还讨论了ActivityGroup的废弃与替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Activity 的直接子类主要由以下六种: AccountAuthenticatorActivityAliasActivityExpandableListActivityFragmentActivityListActivityNativeActivityActivityGroup

间接子类主要有以下三种:LauncherActivity(继承自 ListActivity)、 PreferenceActivity(继承自ListActivity)、TabActivity(继承自ActivityGroup)。


(1)AccountAuthenticatorActivity:实现账户管理界面的 Activity。

(2)AliasActivity: 别名 Activity 的基类,用这个 Activity 来加载其他的 Activity 同时结束自己,它的子类必须实现 onCreate() 方法。可以在 onCreate()  方法中调用 finish() 方法,这时Activity跳过生命周期直接调用 onDestroy() 方法。 

(3)ExpendableListActivity:实现可展开列表界面的 Activity ,其中的 item 通过 ExpandableListAdapter 接口来绑定数据源。当用户选择其中某一项时可以自己定义处理方法。ExpendableListActivity 含有一个 ExpandableView 对象,用两层的方法来展示数据,第一层是组,下面那一层是它的孩子。

(4)ListActivity 和 ExpendableListActivity 大同小易不做介绍。

(5)PreferenceActivity:ListActivity 的子类,实现程序参数设置、存储界面的 Activity。 

(6)TabActivity:实现 Tab 界面的 Activity。被废弃使用,可以使用 FragmentActivity 来代替 。

(7)ActivityGroup  被废弃使用,可以使用 Fragment  和 FragmentManager 来代替 。

(8)LauncherActivity:ListActivity的子类,抽象类,用来陈列所有在给定 intent 下能使用的 Activity,当点击时加载Activity 。

(9)NativeActivity:没有必要继承这个类,只需要在AndroidManifest.xml声明就可以用来展示C++程序了。 

(10)FragmentActivity:用来支持Fragment和 Loader 等API的基类,在android.support.v4包下。


一般常用的 Activity 的基类有如下五种:ListActivity、LauncherActivity、ExpendableListActivity、PreferenceActivity 和 FragmentActivity。


例1:用 LauncherActivity 开发启动 Activity 的列表

LauncherActivity 继承了 ListActivity,因此它本质上也是一个开发列表界面的 Activity。有所不同的是,他开发出来的列表界面中的每个列表项都对应一个 Intent,因此当用户单击不同的列表项时,应用程序会启动相对应的 Activity。

使用 LauncherActivity 时,需要为它设置 Adapter,既可使用简单的 ArrayAdapter,也可以使用 SimpleAdapter,当然也可以扩展 BaseAdapter 来实现自己的 Adapter。

与使用普通 ListActivity 不同的是,集成 LauncherActivity 时通常应该重写 Intent intentForPosition(int position) 方法,该方法根据不同列表项返回不同的 Intent,用于启动不同的 Activity。

public class OtherActivity extends LauncherActivity
{
	//定义两个Activity的名称
	String[] names = {"设置程序参数" ,  "查看星际兵种"};
	//定义两个Activity对应的实现类
	Class<?>[] clazzs = {PreferenceActivityTest.class
		, ExpandableListActivityTest.class};
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
			android.R.layout.simple_list_item_1 , names);
		// 设置该窗口显示的列表所需的Adapter
		setListAdapter(adapter);
	}
	//根据列表项来返回指定Activity对应的Intent
	@Override public Intent intentForPosition(int position)
	{
		return new Intent(OtherActivity.this , clazzs[position]);
	}
}

后续链接: Activity 及其子类的使用二:ExpandableListActivity


源代码下载


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值