Cargar ListView desde una lista genérica

julio 12, 2017 Christian Amado 0 Comentarios

Visual Studio Cuando trabajamos con servicios Web, generalmente éste retorna listas con datos relacionados al tipo de dato que necesitamos para poder trabajar con dichos datos.

Supongamos que tenemos un servicio Web para una biblioteca donde tenemos la lista de libros y deseamos cargar dichos libros en nuestra vista dentro de la aplicación Xamarin. ¿Cómo lo hacemos?

Resulta muy sencillo realizar dicha acción, lo único que necesitamos es heredar de la clase BaseAdapter que permite cargar el objeto ListView de Xamarin con los elementos necesarios para la carga de datos.

public class MiPantallaAdapter : BaseAdapter
{
   List libros;
   Activity context;

   public MiPantallaAdapter(Activity context, List _libros) : base() 
   {
       this.context = context;
       this.libros = _libros;
   }

   public override long GetItemId(int position)
   {
       return position;
   }

   public override Libro this[int position] 
   {  
       get { return libros[position]; }
   }
   
   public override int Count 
   {
       get { return libros.Length; }
   }
   
   public override View GetView(int position, View convertView, ViewGroup parent)
   {
       View view = convertView; // Reutilizar la vista(View) si está disponible.
       
       if (view == null) // Si no existe se crea una nueva, utilizando el archivo de recursos que representa a los items de la lista
           view = context.LayoutInflater.Inflate(Android.Resource.Layout.TU_LAYOUT_PARA_ITEM, null);
       
       view.FindViewById(Android.Resource.Id.Nombre).Text = libros[position];
       
       return view;
   }
}
Con esta porción de código se logra cargar un ListView con datos.

0 comentarios: