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?

  • ListView se rellena desde la parte inferior en lugar de desde la parte superior
  • Carga de la rueda giratoria de animación
  • Desplazamiento con varios ListViews para Android
  • Vista anidada de android
  • CollapsingToolbarLayout problema con GridView
  • ViewPager dentro de ListView
  • Lista dinámica que agrega "cargar más artículos" al final del desplazamiento
  • Problema al agregar pie de página a ListView
  • 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.