Activity的直接子类
Activity的直接子类
- AccountAuthenticatorActivity,
- AliasActivity
- ExpandableListActivity
- FragmentActivity
- ListActivity
- NativeActivity
间接子类:
-
LauncherActivity
-
PreferenceActivity
-
TabActivity
- AccountAuthenticatorActivity 类在后面中介绍.
AliasActivity:
- 定位:存根Activity,用这个Activity来加载其他的Activity,它的子类必须实现onCreate()方法。可以在onCreate()方法中调用finish()方法,这时Activity跳过生命周期直接调用onDestroy()方法。
使用这个类的方法在API原文中的介绍是:To use this activity, you should include in the manifest for the associated component an entry named "android.app.alias". It is a reference to an XML resource describing an intent that launches the real application.
- AliasActivity在AndroidManifest.xml文件中用
activity-alias
标签声明,她可以有自己的intent-filter,meta-date
子标签,activity-alias
具体属性有:
属性 | 含义 | fdf |
---|---|---|
android:targetActivity | 目标Activity | 这个属性的值必须是声明在activity-alias标签前的Activity的android:name |
android:name | alias的唯一标识 | |
android:enabled | 是否运行aliasActivity加载targetActivity | 缺省为true |
android:exported | 是否运行其他的Application通过使用aliasActivity来加载targetActivity |
在AliasActivity类中的onCreate(Bundle)方法中有这样的代码(其余细节请查看AliasActivity源码):
Java代码
Intent intent = parseAlias(parser);
if (intent == null) {
throw new RuntimeException(
"No <intent> tag found in alias description");
}
startActivity(intent);
finish();
ExpendableListActivity:
展示一个可以展开的list,其中的item通过ExpandableListAdapter接口来绑定数据源。当用户选择其中某一项时可以自己定义处理方法。ExpendableListActivity 含有一个ExpandableView对象,用两层的方法来展示数据,第一层是组,下面那一层是它的孩子。使用自己定义的xml来定制布局,则ExpandableListView一定要用"@id/android:list"作为id,另外使用一个id"@id/android:empty"来表示空的list。
ExpandableListAdapter通过ExpendableListActivity 中的setListAdapter(ExpandableListAdapter)方法来设置view中的每一行数据,这个Adapter为组和孩子都分别有方法。比较简单的方法是通过SimpleCursorTreeAdapter和SimpleExpandableListAdapter来作为绑定数据的适配器,SimpleCursorTreeAdapter通过Cursor来抓取数据,而SimpleExpandableListAdapter则通过List中的Map来获取数据。Android在R.layout类中提供了一下标准的行布局比如ssimple_list_item_1, simple_list_item_2, 和two_line_list_item。。我感觉最重要的是布局和SimpleExpandableListAdapter的子类实现最为重要。