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.
<?xml version="1.0" encoding="utf-8">
<LinearLayout 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">
<!-- Esta es la vista que van a tener los item en la lista -->
<TextView
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" />
</LinearLayout>
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
Publicar un comentario