¿Cómo puedo obtener los iconos de las aplicaciones en una lista?

Estoy tratando de hacer una lista con chechboxes para las aplicaciones instaladas en el teléfono Android. Puse los iconos en un ArrayList como sigue

packs = new ArrayList<String>(); // a list of all the packages names = new ArrayList<String>(); // a list of all the apps names icons = new ArrayList<Drawable>(); // a list of all apps names List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo packageInfo : packages) { if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) !=1){ // 'if' is to remove all system applications packs.add((String) packageInfo.packageName); names.add((String) packageManager.getApplicationLabel(packageInfo)); icons.add((Drawable) packageManager.getApplicationIcon(packageInfo)); 

Entonces para ponerlo en el listview, yo uso esto.

 icon = (ImageView) row.findViewById(R.id.appIcon); icon.setImageDrawable(icons.get(position)); 

Sin embargo, la fuerza se cierra y El problema está en icon.setImageDrawable (icons.get (position)); ¿Cómo puedo resolverlo?

Por favor, echa un vistazo a mi solución para obtener la lista de icono de la aplicación

En esta obtención de la lista de ResolveInfo de toda la aplicación

Esta es la forma de obtener la lista de icono de aplicación en android, espero que este ejemplo sea útil para usted.

import java.util.List;

 import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; public class IconListActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); loadApps(); } private void loadApps() { Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> mApps = getPackageManager().queryIntentActivities(mainIntent, 0); ListView listView = getListView(); listView.setAdapter(new AppsAdapter(this,mApps)); } public class AppsAdapter extends BaseAdapter { private LayoutInflater inflater; private List<ResolveInfo> mApps; public AppsAdapter(Context context, List<ResolveInfo> mApps) { this.inflater = LayoutInflater.from(context); this.mApps = mApps; } public View getView(int position, View convertView, ViewGroup parent) { ViewHendler hendler; if (convertView == null) { convertView = inflater.inflate(R.layout.row_view, null); hendler = new ViewHendler(); hendler.textLable = (TextView)convertView.findViewById(R.id.textViewLable); hendler.iconImage = (ImageView)convertView.findViewById(R.id.imageViewIcon); convertView.setTag(hendler); } else { hendler = (ViewHendler)convertView.getTag(); } ResolveInfo info = this.mApps.get(position); hendler.iconImage.setImageDrawable(info.loadIcon(getPackageManager())); hendler.textLable.setText(info.loadLabel(getPackageManager())); return convertView; } class ViewHendler{ TextView textLable; ImageView iconImage; } public final int getCount() { return mApps.size(); } public final Object getItem(int position) { return mApps.get(position); } public final long getItemId(int position) { return position; } } } 
  • ¿Por qué se bloquea getActivity () durante la prueba JUnit cuando las llamadas de ImageView personalizadas comienzanAnimation (Animation)?
  • Decodificador Skia no puede descodificar el flujo remoto
  • No se puede cargar la imagen de url utilizando picasso
  • Android ImageView escalado confict
  • Android: ¿Funcionamiento de matriz en ImageView, animado?
  • ¿Cómo obtengo diferentes posiciones de clic en un solo ImageView
  • No se puede cargar la imagen tomada desde la cámara en un ImageView
  • Cómo evitar el método onClick en la parte transparente de un ImageView cargado de PNG
  • Androide multitouch imagen zoom?
  • Android: crear imagen circular con picasso
  • Cómo hacer un ImageView con esquinas redondeadas?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.