ListView con diferentes elementos y ViewHolders que conducen a ClassCastException
Tengo un ListView y debe tener cuatro tipos diferentes de artículos. Lo busqué, encontré diferentes soluciones que esto es posible y traté de hacer mis cosas al igual que las otras personas. He creado diferentes ViewHolders (uno para cada tipo). Cuando aparece ListView por primera vez todo está bien. Pero cuando empiezo a desplazarse consigo un classCastException. La razón es bastante obvia:
holder = (FeedViewHolder) convertView.getTag();
Mi adaptador intenta obtener el ViewHolder obteniendo la etiqueta del convertView si no es null. Sin embargo, este ViewHolder parece ser el ViewHolder del elemento anterior por lo que no puede ser fundido.
- Desactivar la pantalla mediante programación cuando la cara está cerca de la pantalla en Android
- Problemas de compatibilidad con el tacto sensibles al calor
- ¿Cómo puedo obtener el ancho y la altura de la pantalla del sistema Android Honeycomb?
- Problema con los descriptores HID de la pantalla táctil USB de Android
- Captura de pantalla y compartir en Android 5.0
Busco StackOverflow y Google pero todos los ejemplos parecen trabajar mientras que utilizan el mismo o bastante iguales ViewHolders para sus diversos artículos. Pero mis objetos realmente difieren entre sí y necesitan diferentes ViewHolders. ¿Puede alguien ayudarme a resolver esto?
- Android: detecta mediante programación si el dispositivo tiene una pantalla táctil de hardware conectada
- Desactivar el protector de pantalla de Android
- ¿Por qué `android: screenOrientation =" detrás "` no hay efecto en android 4.1.2?
- PhoneGap / Android - Bloqueo de la orientación al retrato
- ¿Es posible cambiar el resumen de EditTextPreference dinámicamente en Android?
- Android cómo oler el tamaño de la pantalla de navegador webkit?
- Cómo mostrar el icono de alarma con la hora en la pantalla bloqueada y en la barra de notificación
- Android desbloquear la intención de la pantalla?
Ok un colega me ayudó: no había implementado el método getViewTypeCount. Eso fue todo. El sistema Android no sabía que había diferentes tipos de vista porque no los había definido. Gracias de todos modos a dmaxi!
Defina los tipos de vista de elementos para ListView y genere ViewHolder basándose en el tipo de vista real como muestra el código en esta respuesta: Creación de ViewHolders para ListViews con diferentes diseños de elementos
- Establecer parámetros de diseño dinámicamente
- La aplicación de Android sigue siendo miembro de datos estáticos de la clase de actividad