Java.lang.IllegalArgumentException: No se puede tener un viewTypeCount <1

Estoy recibiendo este error:

java.lang.IllegalArgumentException: Can't have a viewTypeCount < 1 

Estoy bastante seguro de saber exactamente lo que está causando, pero no sé cómo solucionarlo.

Mi aplicación carga a los amigos de los usuarios de la base de datos. Cuando el usuario tiene al menos un amigo para poner en la vista de lista, está bien. Cuando el usuario es nuevo y aún no tiene amigos, la aplicación se bloquea porque la vista de lista tiene un recuento de 0.

¿Es esto simplemente un caso de manejo de errores?

¡Si no publico todo el código relevante necesario por favor hágamelo saber!

Aquí está mi adaptador:

 public class MyAdapter extends ArrayAdapter<HashMap<String, String>> { Context context; int resourceId; LayoutInflater inflater; private Context mContext; @Override public int getViewTypeCount() { return getCount(); } @Override public int getItemViewType(int position) { return position; } ArrayList<HashMap<String, String>> items; public MyAdapter (Context context, int resourceId, ArrayList<HashMap<String, String>> items) { super(context, resourceId, items); mContext = context; this.items =items; inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent){ final ViewHolder holder; if (convertView == null){ convertView = inflater.inflate(R.layout.list_item, null); holder = new ViewHolder(); holder.fbphoto = (ImageView)convertView.findViewById(R.id.fbphoto); holder.name = (TextView)convertView.findViewById(R.id.name); convertView.setTag(holder); } else { holder = (ViewHolder)convertView.getTag(); } final HashMap<String,String> item = (HashMap<String,String> ) items.get(position); if (item != null) { String facebookProfilePicUrl = "https://graph.facebook.com/"+item.get(TAG_FACEBOOKID)+"/picture?width=150&height=150"; Picasso.with(mContext) .load(facebookProfilePicUrl) .placeholder(R.drawable.no_image) .into(holder.fbphoto); holder.name.setText(item.get(TAG_USERNAME)); } return convertView; } public class ViewHolder { ImageView fbphoto; TextView name; } } 

Creo que te pierdas el punto de ViewTypeCount. Debe devolver el número de diferentes tipos de vista en su lista. Esto es importante para el reciclaje de las vistas dentro de la lista.

Imaging tiene 2 tipos de Listitems, uno con un fondo blanco y uno con fondo negro. Cuando devuelve 2 como ViewTypeCount el Listview sabe bien, hay un 2 tipos de Listitems y no los mezclará en el recopilación de vista getView.

Tan apenas uso:

  public int getViewTypeCount() { return 1; } 

O no reemplazar ese método en absoluto.

GetViewTypeCount devuelve el número de diferentes tipos de vistas que este adaptador puede devolver. Puesto que solo estás devolviendo un tipo de vista, esto solo devolverá 1.

  • ¿Cómo agregar controles de MediaPlayer en la pantalla de bloqueo?
  • Creación de diseño de inicio de sesión como en la aplicación de facebook para Android
  • Android: Html TextView - ¿es posible?
  • Subida de imágenes de Android / GoogleDrive
  • Android.database.CursorWindowAllocationException al mover un Cursor
  • Conexión larga de sondeo TCP de Android
  • Agregar manualmente canción a Mediastore como una pista de música
  • Inicialización de FirebaseApp en Firebase Android
  • ¿Cómo se muestra spinner si RxJava observable toma mucho tiempo?
  • Falso error positivo de permiso de pelusa incluso después de pedir permiso en tiempo de ejecución
  • El objeto de recolección no funciona?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.