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