Adaptadores en android: ArrayAdapter


Un adaptador nos permite establecer una conexión entre nuestros datos y nuestra vista, en este ejemplo usaremos un Adaptador simple y uno personalizado para mostrar una lista de datos y modificaros desde el Adapter.

Para esto debemos de tener una fuente de datos, en este caso es la clase llamada Compras.java la cual contiene lo siguiente:


public class Compras {
    //vamos a tener 3 variables
    private int id;
    private String product;
    private boolean isBuy;

    //nuestro objeto contendra los datos
    public Compras(int id, String product, boolean isBuy){

        //asignamos las variables al objeto
        this.id=id;
        this.product=product;
        this.isBuy=isBuy;
    }

    //método que regresa el id del producto
    public int getId() {
        return id;
    }

    //método que regresa el nombre del producto
    public String getProduct() {
        return product;
    }

    //método que regresa si esta comprado o no
    public boolean isBuy() {
        return isBuy;
    }

    //importante para obtener los datos en modo de texto
    public String toString(){
        return product;
    }


    //arreglo con los objetos
    public static ArrayList getStudents(){
        ArrayList compras =new ArrayList<>();
        compras.add(new Compras(1,"Huevo",true));
        compras.add(new Compras(2,"Leche",true));
        compras.add(new Compras(3,"Cafe",false));
        compras.add(new Compras(4,"Cereal",true));
        return compras;
    }
}

Después debemos de crear una vista que es la forma en que los productos se van a mostrar, en este caso solo se usara un TextView dentro de un LinearLayout.
&lt?xml version="1.0" encoding="utf-8"&gt
&ltLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"&gt
    &lt!-- Esta es la vista que van a tener los item en la lista --&gt


    &ltTextView
        android:id="@+id/txt_items"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="28sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent" /&gt


&lt/LinearLayout&gt

Luego en el ActivityMain agregamos el Adaptador en cual es un adaptador simple.



// este es un adaptador simple en cual recibe una actividad con this, luego la vista, luego el textview donde se mostrara el objeto
        //Por ultimo colocar la lista de estudiantes o de datos la cual la obtenemos de la clase Compras
        ArrayAdapteradapter=new ArrayAdapter(this, R.layout.items_adapter, R.id.txt_items, Compras.getStudents());
        //llamamos al ListView que creamos
        ListView listView= (ListView) findViewById(R.id.ListViewItems);
        //le asignamos el adaptador de los datos
        listView.setAdapter(adapter);

Comentarios

Entradas más populares de este blog

USB Web Server

Conectar base de datos SQL con Java