Lo que vamos a hacer es una modificación del método showEvent(Cursor cursor), de modo que nos haremos un adapter que es empleado por los elementos ListView. Hay mucha documentación sobre el funcionamiento de los adapter, lo dejamos para otro día y vamos al grano.
El método showEvent queda ahora como sigue:
Como vemos tenemos que llamar a R.layout.item pasándole el cursor que hemos recibido, y dos variables llamadas representar y TO. Vamos con lo sencillo, con las dos variables, son las siguientes:public void showEvent(Cursor cursor){
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.item, cursor, representar, TO);
setListAdapter(adapter);
}
private static String[] representar = {NOMBRE, APELLIDOS, COSTEHORA};
private static int[] TO = {R.id.nombre, R.id.apellidos, R.id.costehora, };
Lo que hacemos es quedarnos con los campos que nos interesa dentro del cursor ya que por ejemplo no
queremos mostrar el ID de los usuarios.
Ahora lo difícil, el item que le hemos pasado al SimpleCursorAdaptater mediante R.layout.item. Esto no es mas que un xml donde le decimos el formato de la lista y los campos que queremos usar de la consulta. Por lo tanto tendremos el xml asociado al layout de la clase java y otro layout específico para formatear cada uno de los elementos de la lista llamado item.xml.
Como deberían de ser los dos archivos .xml a continuación. Primero el de la clase java donde metemos la lista:
Y luego el item.xml que representa los objetos:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<!-- Note built-in ids for 'list' and 'empty' -->
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="3dip"
android:paddingRight="3dip" />
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No events!" />
<Button
android:id="@+id/crearpersona"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/crearpersona"
android:onClick="crearpersona" />
</LinearLayout>
Espero que os sirva!<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/background"
android:layout_height="35dip"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:gravity="center_vertical" >
<TextView
android:id="@+id/nombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="6dip"
android:textSize="20dip"
/>
<TextView
android:id="@+id/nombrecolon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:layout_toRightOf="@id/nombre" />
<TextView
android:id="@+id/apellidos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/nombrecolon"
android:textSize="20dip" />
<TextView
android:id="@+id/apellidoscolon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:layout_toRightOf="@id/apellidos" />
<TextView
android:id="@+id/costehora"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/apellidoscolon"
android:textSize="20dip" />
<TextView
android:id="@+id/costehoracolon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" €"
android:layout_toRightOf="@id/costehora"
android:textSize="20dip" />
</RelativeLayout>
LIBRO RECOMENDADO PARA APRENDER ANDROID
Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier
excelente post!!
ResponderEliminar