#android #android-layout
#Android #android-layout
Вопрос:
Хорошо, я использую этот код для получения списка приложений на телефоне, но как мне отобразить их на экране?
final PackageManager pm = getPackageManager();
List<applicationinfo> packages = pm
.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d(TAG, "Installed package :" packageInfo.packageName);
Log.d(TAG,
"Launch Activity :"
pm.getLaunchIntentForPackage(packageInfo.packageName));
}
Я пытаюсь отобразить их в listview, но у меня возникли небольшие проблемы. Кто-нибудь, пожалуйста, может помочь?
Комментарии:
1. Смотрите этот пост .
Ответ №1:
Это может вам немного помочь.
public class AppList extends Activity {
private ListView lView;
private ArrayList results = new ArrayList();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lView = (ListView) findViewById(R.id.list1);
PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> list = pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
for (ResolveInfo rInfo : list) {
results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
Log.w("Installed Applications", rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
}
lView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, results));
}
}
Ответ №2:
Вы должны создать адаптер, который реализует ListAdapter. В качестве основы вы можете использовать BaseAdapter. Для получения дополнительной информации вы можете посетить это руководство