生活随笔
收集整理的這篇文章主要介紹了
android 获取lanucher 列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引用:http://www.iteye.com/topic/696187
獲取Launcher 啟動列表
?
即 列出所有Launcher程序 通過PackageManager 來獲取
?
?
?
?
[代碼 步驟]
?
1. 定義內部類 LauncherItem? 用于定義Application相關屬性 比如:圖標 名稱 以及 ComponentName
?
Java代碼??
public?class?LauncherItem?{??????????Drawable?icon;??????????String?name;??????????ComponentName?component;????????????????????LauncherItem(Drawable?d,?String?s,ComponentName?cn){??????????????icon?=?d;??????????????name?=?s;??????????????component?=?cn;??????????}??????};?? ?
?
?
2.? 定義List<LauncherItem> lvalue 用于存放查詢結果
?
Java代碼??
public?void?addLauncher(){??????????lvalue?=?new?ArrayList<LauncherItem>();????????????????????pkgMgt?=?this.getPackageManager();??????????????????????????????Intent?it?=?new?Intent(Intent.ACTION_MAIN);??????????it.addCategory(Intent.CATEGORY_LAUNCHER);?????????????????????List<ResolveInfo>?ra?=pkgMgt.queryIntentActivities(it,0);????????????????????for(int?i=0;i<ra.size();i++){??????????????ActivityInfo?ai?=?ra.get(i).activityInfo;??????????????????????????????????????????Drawable?icon?=?ai.loadIcon(pkgMgt);??????????????String?label?=?ai.loadLabel(pkgMgt).toString();??????????????ComponentName?c?=?new?ComponentName(ai.applicationInfo.packageName,ai.name);??????????????????????????????????????????LauncherItem?item?=?new?LauncherItem(icon,label,c);????????????????????????????lvalue.add(item);??????????}????????????????}?? ?
?
?
3. 定義LauncherAdapter 并指定各個item顯示樣式
?
Java代碼??
public?class?LauncherAdapter?extends?BaseAdapter?{??????????Activity?activity;????????????????????public?LauncherAdapter(Activity?a){??????????????activity?=?a;??????????}????????????????????@Override??????????public?int?getCount()?{????????????????????????????return?lvalue.size();??????????}????????????@Override??????????public?Object?getItem(int?arg0)?{????????????????????????????return?arg0;??????????}????????????@Override??????????public?long?getItemId(int?position)?{????????????????????????????return?position;??????????}????????????@Override??????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????????????????????????????return?composeItem(position);??????????}????????????????????public?View?composeItem(int?position){??????????????LinearLayout?layout?=?new?LinearLayout(activity);??????????????layout.setOrientation(LinearLayout.HORIZONTAL);????????????????????????????ImageView?iv?=?new?ImageView(activity);??????????????iv.setImageDrawable(lvalue.get(position).icon);??????????????layout.addView(iv);????????????????????????????TextView?tv?=?new?TextView(activity);??????????????tv.setText(lvalue.get(position).name);??????????????tv.setPadding(10,?5,?0,?0);??????????????layout.addView(tv);????????????????????????????return?layout;??????????}????????????????????????????????????}?? ?
?
4. 啟動某個item 當單擊時
?
Java代碼??
adapter?=?new?LauncherAdapter(this);??????????lv.setAdapter(adapter);????????????????????lv.setOnItemClickListener(new?OnItemClickListener(){????????????????@Override??????????????public?void?onItemClick(AdapterView<?>?arg0,?View?arg1,?int?arg2,??????????????????????long?arg3)?{????????????????????????????????????Intent?intent?=new?Intent(Intent.ACTION_VIEW);????????????????????intent.setComponent(lvalue.get(arg2).component);??????????????????startActivity(intent);??????????????}????????????????????????});?? ??
?
?
5.? emulator 結果結果
?
- 列出所有application
?
?
?
- 單擊Alarm Clock 的情形:
?
?
總結
以上是生活随笔為你收集整理的android 获取lanucher 列表的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。