Vista de lista de Android

Androide ListViewes una vista que agrupa varios elementos y los muestra en una lista de desplazamiento vertical. Los elementos de la lista se insertan automáticamente en la lista mediante unAdapter que extrae contenido de una fuente como una matriz o una base de datos.

Vista de la lista

Un adaptador en realidad crea un puente entre los componentes de la interfaz de usuario y la fuente de datos que completan los datos en el componente de la interfaz de usuario. El adaptador retiene los datos y envía los datos a la vista del adaptador, la vista puede tomar los datos de la vista del adaptador y muestra los datos en diferentes vistas como ruleta, vista de lista, vista de cuadrícula, etc.

los ListView y GridView son subclases de AdapterView y se pueden poblar vinculándolos a un Adapter, que recupera datos de una fuente externa y crea una Vista que representa cada entrada de datos.

Android proporciona varias subclases de Adapter que son útiles para recuperar diferentes tipos de datos y crear vistas para un AdapterView (es decir, ListView o GridView). Los adaptadores comunes sonArrayAdapter,Base Adapter, CursorAdapter, SimpleCursorAdapter,SpinnerAdapter y WrapperListAdapter. Veremos ejemplos separados para ambos adaptadores.

Atributos de ListView

Los siguientes son los atributos importantes específicos de GridView:

No Señor Atributo y descripción
1

android:id

Este es el ID que identifica de forma única el diseño.

2

android:divider

Se puede dibujar o colorear para dibujar entre los elementos de la lista.

3

android:dividerHeight

Esto especifica la altura del divisor. Esto podría estar en px, dp, sp, in o mm.

4

android:entries

Especifica la referencia a un recurso de matriz que llenará ListView.

5

android:footerDividersEnabled

Cuando se establece en falso, ListView no dibujará el divisor antes de cada vista de pie de página. El valor por defecto es verdadero.

6

android:headerDividersEnabled

Cuando se establece en falso, ListView no dibujará el divisor después de cada vista de encabezado. El valor por defecto es verdadero.

ArrayAdapter

Puede utilizar este adaptador cuando su fuente de datos sea una matriz. De forma predeterminada, ArrayAdapter crea una vista para cada elemento de la matriz llamando a toString () en cada elemento y colocando el contenido en unTextView. Considere que tiene una matriz de cadenas que desea mostrar en un ListView, inicialice una nuevaArrayAdapter usando un constructor para especificar el diseño de cada cadena y la matriz de cadenas -

ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.ListView,StringArray);

Aquí hay argumentos para este constructor:

  • Primer argumento thises el contexto de la aplicación. La mayor parte del caso, guárdelothis.

  • El segundo argumento será el diseño definido en el archivo XML y tendrá TextView para cada cadena de la matriz.

  • El argumento final es una matriz de cadenas que se completarán en la vista de texto.

Una vez que haya creado el adaptador de matriz, simplemente llame setAdapter() en tu ListView objeto de la siguiente manera -

ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);

Definirá su vista de lista en el directorio res / layout en un archivo XML. Para nuestro ejemplo, vamos a utilizar el archivo activity_main.xml.

Ejemplo

A continuación se muestra el ejemplo que lo llevará a través de sencillos pasos para mostrar cómo crear su propia aplicación de Android usando ListView. Siga los siguientes pasos para modificar la aplicación de Android que creamos en el capítulo Ejemplo de Hello World :

Paso Descripción
1 Utilizará Android Studio IDE para crear una aplicación de Android y nombrarla como ListDisplay en un paquete com.example.ListDisplay como se explica en el capítulo Ejemplo de Hello World .
2 Modifique el contenido predeterminado del archivo res / layout / activity_main.xml para incluir contenido ListView con atributos autoexplicativos.
3 No es necesario cambiar string.xml, Android Studio se encarga de las constantes de cadena predeterminadas.
4 Cree un archivo de vista de texto res / layout / activity_listview.xml . Este archivo tendrá la configuración para mostrar todos los elementos de la lista. Para que pueda personalizar sus fuentes, relleno, color, etc. utilizando este archivo.
6 Ejecute la aplicación para iniciar el emulador de Android y verifique el resultado de los cambios realizados en la aplicación.

A continuación se muestra el contenido del archivo de actividad principal modificado src/com.example.ListDisplay/ListDisplay.java. Este archivo puede incluir cada uno de los métodos fundamentales del ciclo de vida.

package com.example.ListDisplay;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListDisplay extends Activity {
   // Array of strings...
   String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry",
      "WebOS","Ubuntu","Windows7","Max OS X"};
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      ArrayAdapter adapter = new ArrayAdapter<String>(this, 
         R.layout.activity_listview, mobileArray);
      
      ListView listView = (ListView) findViewById(R.id.mobile_list);
      listView.setAdapter(adapter);
   }
}

A continuación se mostrará el contenido de res/layout/activity_main.xml archivo -

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context=".ListActivity" >

   <ListView
      android:id="@+id/mobile_list"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >
   </ListView>
 
</LinearLayout>

A continuación se mostrará el contenido de res/values/strings.xml para definir dos nuevas constantes -

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">ListDisplay</string>
   <string name="action_settings">Settings</string>
</resources>

A continuación se mostrará el contenido de res/layout/activity_listview.xml archivo -

<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design -->

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/label"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:padding="10dip"
   android:textSize="16dip"
   android:textStyle="bold" >
</TextView>

Intentemos ejecutar nuestro modificado Hello World!aplicación que acabamos de modificar. Supongo que habías creado tuAVDmientras realiza la configuración del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar en la barra de herramientas. Android Studio instala la aplicación en su AVD y la inicia y, si todo está bien con su configuración y aplicación, se mostrará la siguiente ventana del Emulador:

SimpleCursorAdapter

Puede utilizar este adaptador cuando su fuente de datos sea un Cursor de base de datos. Al usar SimpleCursorAdapter , debe especificar un diseño para usar para cada fila en elCursor y qué columnas del Cursor deben insertarse en qué vistas del diseño.

Por ejemplo, si desea crear una lista de nombres y números de teléfono de personas, puede realizar una consulta que devuelva un Cursor que contiene una fila para cada persona y columnas para los nombres y números. Luego, crea una matriz de cadenas que especifica qué columnas del Cursor desea en el diseño para cada resultado y una matriz de enteros que especifica las vistas correspondientes en las que se debe colocar cada columna:

String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME, 
   ContactsContract.CommonDataKinds.Phone.NUMBER};
int[] toViews = {R.id.display_name, R.id.phone_number};

Cuando crea una instancia de SimpleCursorAdapter, pase el diseño que se usará para cada resultado, el Cursor que contiene los resultados y estas dos matrices:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
   R.layout.person_name_and_number, cursor, fromColumns, toViews, 0);
        
ListView listView = getListView();
listView.setAdapter(adapter);

El SimpleCursorAdapter luego crea una vista para cada fila en el Cursor usando el diseño proporcionado insertando cada elemento de Columns en el correspondiente toViews ver.