Как мне отобразить список приложений, уже установленных на телефоне Android, в listview?

#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. Для получения дополнительной информации вы можете посетить это руководство