Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Qué adaptador usar – BaseAdapter o ArrayAdapter?

Tengo una cadena de JSON con las varias instancias de la siguiente

  1. Nombre
  2. Mensaje
  3. Timestamp
  4. URL de la foto del perfil

Quiero crear un ListView donde cada lista tendrá lo anterior. ¿Cuál es el mejor adaptador que necesito extender para este caso particular, para crear un adaptador personalizado?

  • ¿Se puede utilizar un LoaderManager de un servicio?
  • Cierre de la base de datos en un ContentProvider
  • NetBeans y parada / interrupción en todas las excepciones?
  • ¿Cómo recuperar la versión sdk de Android?
  • Android gridview que ajusta al tamaño de la pantalla
  • JQuery Mobile + PhoneGap para Android - Error al cargar index.html
  • Facebook Android SDK 3.0, cómo compartir contenido sin el LoginButton
  • TargetApi no se tiene en cuenta
  • Cómo restringir datos de proveedor de contenido entre aplicaciones
  • Android, ¿Puedo usar putExtra para pasar varios valores?
  • Compartir imagen no funciona en viber y facebook
  • IPhone-como barra de pestañas en Android?
  • One Solution collect form web for “¿Qué adaptador usar – BaseAdapter o ArrayAdapter?”

    Mi suposición es que usted ha analizado la cadena de JSON en un modelo de objeto antes de considerar cualquier caso … vamos a llamar a esta clase de perfil.

    Estrategia 1

    Un ArrayAdapter es suficiente con un método overView getView (..) que concatenará sus múltiples campos juntos en la forma que desee.

    ArrayAdapter<Profile> profileAdapter = new ArrayAdapter<Profile>(context, resource, profiles) { @Override public View getView(int position, View convertView, ViewGroup parent) { View v; // use the ViewHolder pattern here to get a reference to v, then populate // its individual fields however you wish... v may be a composite view in this case } } 

    Recomiendo encarecidamente el patrón ViewHolder para listas potencialmente grandes: https://web.archive.org/web/20110819152518/http://www.screaming-penguin.com/node/7767

    Esto hace una enorme diferencia.

    • Ventaja 1. Le permite aplicar un diseño complejo a cada elemento del ListView.
    • Advantage 2. No requiere que manipule toString () para que coincida con su visualización deseada (después de todo, mantener el modelo y la lógica de vista separados nunca es una mala práctica de diseño).

    Estrategia 2

    Como alternativa, si el método toString () en su clase representativa ya tiene un formato aceptable para la visualización, puede utilizar ArrayAdapter sin sobreescribir getView ().

    Esta estrategia es más sencilla, pero te obliga a destruir todo en una cadena para su visualización.

     ArrayAdapter<Profile> profileAdapter = new ArrayAdapter<Profile>(context, resource, profiles) 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.