【起航计划 003】2015 起航计划 Android APIDemo的魔鬼步伐 02 SimpleAdapter,ListActivity,PackageManager参考
01 API Demos
ApiDemos 详细介绍了Android平台主要的 API,android 5.0主要包括下图几个大类,涵盖了数百api示例:
aaarticlea/png;base64,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" alt="" />
02 入口类: SimpleAdapter,ListActivity,PackageManager的使用
ApiDemos采用分类层次显示,ApiDemo是ApiDemos的入口类,继承自ListActivity,该类的主要功能是分类列出大类,进而更进一步显示示例。
ListActivity可以看做为一个含有ListView的Activity,可以不用setContentView设置布局,除非你想定制自己的List布局,这样的话,你的布局中必须包含一个id为"@id/android:list"的ListView。 若你还指定了一个id为"@id/android:empty"的view,当ListView中没有数据要显示时,这个view就会被显示,同时 ListView会被隐藏。
ApiDemo这个类可以作为ListActivity使用的参考示例。
在ApiDemos 的 onCreate()中代码:
Intent intent = getIntent();
String path = intent.getStringExtra("com.example.android.apis.Path"); if (path == null) {
path = "";
} setListAdapter(new SimpleAdapter(this, getData(path),
android.R.layout.simple_list_item_1, new String[] { "title" },
new int[] { android.R.id.text1 }));
getListView().setTextFilterEnabled(true);
这里直接调用ListActivity的setListAdapter给ListView设置适配器。
SimpleAdapter在这里作为数据源getData(path)与ListView(ListActivity)之间的桥梁,它的构造函数如下:
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
使用SimpleAdapter时可以借用二维表来更好的理解,SimpleAdapter的数据源data 类型为List<? extends Map<String, ?>> List 中每一项为一个Map对象,相当于二维表中一行,这一行可以有多列,每列可以有个名字,为Map<String,?> string ,相当于表的列名:
ApiDemos中每条记录只显示一列”title”。
android.R.layout.simple_list_item_1 为用来显示每条记录的Layout资源id, ListActivity允许使用自定义Layout ,这里使用了Android系统资源,simple_list_item_1由一个TextView构成,其id为text1.
new String[] { “title” } 为需要显示的列表的数组,ApiDemos只显示一列“title”,如果有多列:则可以为new String[] { “title”,”field1”,”field2”,”field3” }。
new int[] { android.R.id.text1 }则指定使用 android.R.layout.simple_list_item_1 中 id 为text1的 TextView 来显示 “title” 列。 如果有多列,Layout可以定义多个View (不一定都为TextView) ,然后为每列指定显示的View的id。
再来看看getData(path)是如何定义的,protected List getData(String prefix) 返回一个列表
protected List<Map<String, Object>> getData(String prefix) {
List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>(); Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE); PackageManager pm = getPackageManager(); //这部分通过PackageManager从 AndroidManifest.xml中读取所
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0); //有Intent-Filter含有:Intent.ACTION_MAIN和 Intent.CATEGORY_SAMPLE_CODE所有Activity信息 if (null == list)
return myData; String[] prefixPath;
String prefixWithSlash = prefix; if (prefix.equals("")) {
prefixPath = null;
} else {
prefixPath = prefix.split("/");
prefixWithSlash = prefix + "/";
} int len = list.size(); Map<String, Boolean> entries = new HashMap<String, Boolean>(); for (int i = 0; i < len; i++) {
ResolveInfo info = list.get(i);
CharSequence labelSeq = info.loadLabel(pm);
String label = labelSeq != null
? labelSeq.toString()
: info.activityInfo.name; if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) { String[] labelPath = label.split("/"); String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length]; if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
addItem(myData, nextLabel, activityIntent(
info.activityInfo.applicationInfo.packageName,
info.activityInfo.name));
} else {
if (entries.get(nextLabel) == null) {
addItem(myData, nextLabel, browseIntent(prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
entries.put(nextLabel, true);
}
}
}
} Collections.sort(myData, sDisplayNameComparator); return myData;
}
它通过PackageManager 从 AndroidManifest.xml中读取所有Intent-Filter含有:Intent.ACTION_MAIN和 Intent.CATEGORY_SAMPLE_CODE所有Activity信息。前面说过数百个示例根据其功能分类,比如 Hello World示例它的Label为
App/Activity/<b>Hello <i>World</i></b>,表示它的分类为分类App下Activity子类。
<!-- Activity Samples --> <activity android:name=".app.HelloWorld" android:label="@string/activity_hello_world">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.SAMPLE_CODE" />
</intent-filter>
</activity>
<string name="activity_hello_world">App/Activity/<b>Hello <i>World</i></b></string>
getData(String prefix)根据每个Activity的Label属性和当前层次(prefix)来决定当前列表中某项为叶子列表项,还是分类列表项,如果是叶子列表项,则添加为activityIntent,当用户点击改列表项时则会触发该示例。若是分类列表项,则添加为 browseIntent,browseIntent还是触发ApiDemos Activity,但Intent带有Extra信息,表示需要显示该分类下的子类:
protected Intent activityIntent(String pkg, String componentName) {
Intent result = new Intent();
result.setClassName(pkg, componentName);
return result;
} protected Intent browseIntent(String path) {
Intent result = new Intent();
result.setClass(this, ApiDemos.class);
result.putExtra("com.example.android.apis.Path", path);
return result;
}
此时如果用户点击该节点列表项,则会进入该分类下级目录。
protected void addItem(List<Map<String, Object>> data, String name, Intent intent) {
Map<String, Object> temp = new HashMap<String, Object>();
temp.put("title", name);
temp.put("intent", intent);
data.add(temp);
} @Override
@SuppressWarnings("unchecked")
protected void onListItemClick(ListView l, View v, int position, long id) {
Map<String, Object> map = (Map<String, Object>)l.getItemAtPosition(position); Intent intent = new Intent((Intent) map.get("intent"));
intent.addCategory(Intent.CATEGORY_SAMPLE_CODE);
startActivity(intent);
}
addItem 给返回的List中添加一项,每个记录含两列 :”title”,”intent” ,其中只显示”title”列,如果想要显示”intent”列的信息,就不能使用 android.R.layout.simple_list_item_1 了,这时可以另外定义一个Layout 来显示多列数据。 intent可以为触发示例,如”Hello World”或是下级示例列表,此时触发的Activity还是ApiDemos。
此外,ApiDemo还定义了ApiDemosApplication做为Application的子类,如果需要在多个Activity共享一些数据,
可以定义在Application中。如果使用了自定义的Application,别忘了修改AndroidManifest.xml ,如下:
<application android:name="ApiDemosApplication"
android:label="@string/activity_sample_code"
android:icon="@drawable/app_sample_code"
android:hardwareAccelerated="true"
android:supportsRtl="true"> … </application>
【起航计划 003】2015 起航计划 Android APIDemo的魔鬼步伐 02 SimpleAdapter,ListActivity,PackageManager参考的更多相关文章
- 【起航计划 002】2015 起航计划 Android APIDemo的魔鬼步伐 01
本文链接:[起航计划 002]2015 起航计划 Android APIDemo的魔鬼步伐 01 参考链接:http://blog.csdn.net/column/details/mapdigitap ...
- 【起航计划 037】2015 起航计划 Android APIDemo的魔鬼步伐 36 App->Service->Remote Service Binding AIDL实现不同进程间调用服务接口 kill 进程
本例和下个例子Remote Service Controller 涉及到的文件有RemoteService.java ,IRemoteService.aidl, IRemoteServiceCallb ...
- 【起航计划 031】2015 起航计划 Android APIDemo的魔鬼步伐 30 App->Preferences->Advanced preferences 自定义preference OnPreferenceChangeListener
前篇文章Android ApiDemo示例解析(31):App->Preferences->Launching preferences 中用到了Advanced preferences 中 ...
- 【起航计划 027】2015 起航计划 Android APIDemo的魔鬼步伐 26 App->Preferences->Preferences from XML 偏好设置界面
我们在前面的例子Android ApiDemo示例解析(9):App->Activity->Persistent State 介绍了可以使用Shared Preferences来存储一些状 ...
- 【起航计划 020】2015 起航计划 Android APIDemo的魔鬼步伐 19 App->Dialog Dialog样式
这个例子的主Activity定义在AlertDialogSamples.java 主要用来介绍类AlertDialog的用法,AlertDialog提供的功能是多样的: 显示消息给用户,并可提供一到三 ...
- 【起航计划 012】2015 起航计划 Android APIDemo的魔鬼步伐 11 App->Activity->Save & Restore State onSaveInstanceState onRestoreInstanceState
Save & Restore State与之前的例子Android ApiDemo示例解析(9):App->Activity->Persistent State 实现的UI类似,但 ...
- 【起航计划 035】2015 起航计划 Android APIDemo的魔鬼步伐 34 App->Service->Local Service Controller
Local Service Controller 是将LocalService当作“Started”Service来使用,相对于”Bound” Service 来说,这种模式用法要简单得多,Local ...
- 【起航计划 034】2015 起航计划 Android APIDemo的魔鬼步伐 33 App->Service->Local Service Binding 绑定服务 ServiceConnection Binder
本例和下列Local Service Controller 的Activity代码都定义在LocalServiceActivities.Java 中,作为LocalServiceActivities ...
- 【起航计划 033】2015 起航计划 Android APIDemo的魔鬼步伐 32 App->Service->Foreground Service Controller service使用,共享service,前台服务,onStartCommand
Android系统也提供了一种称为“Service”的组件通常在后台运行.Activity 可以用来启动一个Service,Service启动后可以保持在后台一直运行,即使启动它的Activity退出 ...
随机推荐
- CF431B Shower Line
Many students live in a dormitory. A dormitory is a whole new world of funny amusements and possibil ...
- Exadata X7来了
1.Exadata Brings In-Memory OLTP to Storage Exadata Storage Servers add a memory cache in front of Fl ...
- PhpStrom 和 wamp 配置 xdebug
本地服务器: 1.php.ini 添加内容: ;设置xdebug的端口为9000 xdebug.remote_handler = dbgp xdebug.remote_host= localhost ...
- Experimental Educational Round: VolBIT Formulas Blitz D
Description After a probationary period in the game development company of IT City Petya was include ...
- input keyup的时候实现内容过滤
当在文本框中输入关键字,就会搜索出包含关键字的数据 实现: 只需要一个内容过滤即可 <body> <input type="text" id="sear ...
- Tomcat故障
1.1 故障日志 31-May-2018 16:11:41.136 INFO [http-nio-8017-exec-5] org.apache.coyote.http11.AbstractHttp1 ...
- Wireshark抓取TCP包分析
介绍 本篇文章是使用wireshrak对某个https请求的tcp包进行分析. 目的 通过抓包实际分析了解tcp包. 准备工作 在我自己机子上安装的是wireshark2.2.6版本,随机查找了某个T ...
- 事务背书 ACID, CAP, BASE
A atomicity 原子性 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成, C consistency 一致性 在事务开始之前和事务结束以后,数据库的完整性没有被破 ...
- Java字符串拆分和字符串连接
Java字符串拆分/连接 public class LierString{ //------------------------------------------------------------ ...
- 随性练习:python字典实现文本合并
主要用到,字典.字符串分割和连接.文件等操作 例如:有以下两个txt文本,要合并成一个 代码: address_book1 = {} address_book2 = {} def read_addre ...