API Demos_入口
基于android 2.3.3的API Demos。先看下ApiDemosApplication.java這個(gè)類,這個(gè)類繼承自Application,主要作用是保存一些全局的狀態(tài),這個(gè)類會(huì)在你的應(yīng)用程序創(chuàng)建時(shí)便被實(shí)例化,
這個(gè)類的類名,便是AndroidManifest.xml 的 <application> tag的name。比如在這個(gè)類中onCreate()中:
PreferenceManager.setDefaultValues(this, R.xml.default_values, false);
這個(gè)方法將會(huì)從default_values.xml中填充默認(rèn)的值到com.example.android.apis_preferences.xml這個(gè)默認(rèn)的配置文件中去。這個(gè)配置文件在/data/data/com.example.android.apis/shared_prefs/下。根據(jù)官方API,This should be called by the application's main activity.
這樣其他的activity、service等才能相應(yīng)的使用這個(gè)配置文件。
接著看下ApiDemos.java,這個(gè)類充分應(yīng)用了AndroidManifest.xml這個(gè)文件。首先這個(gè)類是程序入口,一個(gè)ListActivity,這個(gè)類會(huì)重復(fù)利用到。
在其onCreate()方法里,第一次時(shí)path=""即prefix="",接著看getData()這個(gè)方法,這個(gè)方法就是給這個(gè)listview填值的,填入的值放在myData這個(gè)List<Map>中:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE);
PackageManager pm = getPackageManager();mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE);
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
下面就是一些邏輯了,應(yīng)該能看懂。
ResolveInfo info = list.get(i);
CharSequence labelSeq = info.loadLabel(pm);在變而已,在browseIntent()這個(gè)方法中。
每個(gè)列表項(xiàng)是按照首個(gè)字符的ascii碼排序的,在sDisplayNameComparator中可以看到,列表項(xiàng)還可以按照你輸入的字符過濾。
posted on 2012-01-10 11:01 ZircoN 閱讀(1621) 評(píng)論(1) 編輯 收藏 所屬分類: Android ApiDemos