Usuario:ManuelRomero/Android/ComponentesAplicacion/Activity/ListActivity

ListActivity
Para este tipo de tan comunes operaciones, Android nos ofrece una clase especializada llamada ListActivity Imagen:ClaseListActivity.png onListItemClick(...) [|protected void onListItemClick (ListView l, View v, int position, long id)]
 * En Android es muy común que en un momento dado una aplicación me muestre una lista de elementos de los cuales voy a seleccionar uno (lista de contactos, lista de libros, ...)
 * Una vez seleccionado el elemento realizaremos la operación correspondiente como puede ser en los casos anteriores ver el detalle de ese contacto o de ese libro.
 * Es una clase que extiende de Activity y está especializada en trabajar con listas de objetos, como veremos a continuación.
 * Dos ideas importantes sobre la clase ListActivity.
 * 1) ListActivity muestra una lista de objetos cuyos valores se toman de algún origen de datos como una matriz o un cursor,
 * 2) ListActivity nos ofreace los controles de eventos cuando el usuario selecciona un elemento de dicha lista.

Poniendo el layout
Ahora queremos cargar estos valores cada elemento del array como un view en el layout de nuestra aplicación y que aparezcan en una lista. Para ello vamos a usar un objeto de la clase ListView.
 * Ahora queremos cargar el layout con nuestros objetos en nuestra aplicación que va a ser una ListActivity
 * Primero necesitaremos tener nuestros valores
 * En nuestro caso vamos a usar el origen de datos de un array que definimos como una atributo en nuestra clase
 * De momento vamos a usar 5 aplicaciones por lo que daremos 5 valores.
 * ListView
 * Un ListView es un objeto que representa una lista de view con un scrooll vertical asociado que nos permite desplazarnos horizontalmente entre los diferentes view.

o usando el diseñador gráfico y arrastrándolo con el ratón Imagen:ListView.png Imagen:ClaseAdapter.png
 * Para añadir el ListView vamos a nuestro fichero xml del layout y lo añadimos
 * bien directamente en el fichero xml
 * Ahora lo único que nos queda es asociar la lista de valores del array, al ListView, para ello necesitamos adaptar cada valor de nuestro origen de datos a cada fila de nuestro ListView.
 * Para este cometido necesitamos un objeto que implemente la interfaz Adapter. Adapter es una interfaz implementada por las clases que podemos ver en la imagen siguiente.
 * La interfaz Adapter (y por lo tanto sus implementaciones), sirven para proporcionar una interfaz en común para cada modelo de datos.
 * Observar en la imagen, las clases en las que su recuadro es son puntitos son interfaces, las que están en discontinuo puntos y rayas son clases abstractas, las que tienen la lína continua son implementaciones completas (clases normales que implementan las interfaces o métodos abstractos de las que derivan).
 * Por lo tanto deberemos definir para nuestro caso un ArrayAdapter
 * En nuestro caso usaremos un ArrayAdapter, pues nuestro origen de valores es un array.
 * ArrayAdapter
 * Êsta clase espera tener un layout con un TextView (por defecto) para cargar visualmente cada elemento del array.


 * Le debemos facilitar el contexto, un layout con un ListView y la lista de valores.
 * Android nos falicilita una serie de recursos por defecto para muchas operaciones.
 * En concreto nos falicita un layout predefinido que incorpora un ListView con el id android:list para incorporar en una lista de valores
 * Si solo queremos cargar esta información, usamos este layout android.R.layout.simple_list_item_1

setAdapater(Adaptador...); Con solo este código ya tenemos nuestra app chutando. Veamos el ejemplo completo ....   ... Imagen:ListViewConImagen.png
 * Una vez que tenemos el Adapter preparado, solo nos queda asociarlo o cargarlo en nuestro ListActivity
 * ListActivity tiene un método preparado para poner el adaptador con su layout en nuestra aplicación
 * Así de sencillo
 * Usando de la misma forma, nuestro layout 
 * Si queremos usar nuestro propio Layout podemos definir nuestro layout con un listView y un id concreto
 * Usando un layout con mas detalle
 * Supongamos que delante de cada texto queremos que aparezca el icono de la aplicación
 * Para ello debemos crear nuestro propio layout
 * Supongamos que queremos poner la siguiente idea de layout

La clase ListActivity tiene un método protegido onListItemClick el cual es invocado cada vez que seleccionemos un elemento de la lista.
 * Ahora queremos que sea este layout el use nuestro adapter
 * Para este tipo de layout donde cada elemento de la lista le acompaña un laber podemos usar el constructor del adapter.
 * Si nuestro layout fuera mas elaborado, deberíamos escribir nuestro propio adapter BaseAdapter e implementar el método getView (MRM Pendiente ejemplo)
 * Observemos el constructor del adapter, suponiendo que el fichero xml anterior se llama layout.iconos
 * Evento de seleccionar un elemento
 * Este método recibe 4 parámetros
 * valores
 * Es el contenedor ListView que contiene la lista de View.


 * elemento
 * es el View del ListView que ha sido cliqueado.


 * pos
 * es la posición en el vector del elemento del ListView seleccionado.


 * id
 * el id de la fila que ha sido seleccionada.