El adaptador actúa como un puente entre el componente de interfaz de usuario y la fuente de datos. Convierte los datos de las fuentes de datos en elementos de vista que se pueden mostrar en el componente de la interfaz de usuario. La fuente de datos puede ser arrays, HashMap, base de datos, etc. y los componentes de la interfaz de usuario pueden ser ListView , GridView, Spinner , etc. ArrayAdapter es el adaptador más utilizado en Android. Cuando tiene una lista de elementos de un solo tipo que se almacenan en una array, puede usar ArrayAdapter. De la misma forma, si tienes una lista de números de teléfono, nombres o ciudades. ArrayAdapter tiene un diseño con un único TextView . Si desea tener un diseño más complejo en lugar de ArrayAdapter, use CustomArrayAdapter . La sintaxis básica para ArrayAdapter se da como:
ArrayAdapter público (contexto de contexto, recurso int, int textViewResourceId, objetos T [])
Parámetros
Parámetros |
Descripción |
---|---|
contexto | El contexto actual. Este valor no puede ser nulo. |
recurso | El ID de recurso para el archivo de diseño que contiene un diseño para usar al crear instancias de vistas. |
textViewResourceId | La identificación de TextView dentro del recurso de diseño que se completará. |
objetos | Los objetos a representar en ListView. Este valor no puede ser nulo. |
contexto: Se utiliza para pasar la referencia de la clase actual. Aquí, la palabra clave ‘esta’ se usa para pasar la referencia de clase actual. En lugar de ‘esto’, también podríamos usar el método getApplicationContext() que se usa para la actividad y el método getApplication() que se usa para los fragmentos.
public ArrayAdapter(this, int resource, int textViewResourceId, T[] objetos)
recurso: se utiliza para configurar el archivo de diseño (archivos .xml) para los elementos de la lista.
ArrayAdapter público (esto, R.layout.itemListView, int textViewResourceId, T[] objetos)
textViewResourceId: se utiliza para configurar TextView donde desea mostrar los datos de texto.
ArrayAdapter público (esto, R.layout.itemListView, R.id.itemTextView, T[] objetos)
objetos: estos son el objeto de array que se utiliza para establecer el elemento de array en TextView.
String CourseList[] = {“Programación C”, “Estructura de datos”, “Base de datos”, “Python”,
«Java», «Sistema operativo», «Diseño del compilador», «Desarrollo de Android»};
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.itemListView, R.id.itemTextView, CourseList[]);
Ejemplo
En este ejemplo, la lista de cursos se muestra utilizando un adaptador de array simple. idioma.
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: trabajar con el archivo activity_main.xml
Vaya a la carpeta de diseño y en el archivo activity_main.xml cambie ConstraintLayout a RelativeLayout e inserte un ListView con id simpleListView. actividad_principal.xml
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" tools:context=".MainActivity"> <ListView android:id="@+id/simpleListView" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout>
Paso 3: crea un nuevo archivo de diseño
Vaya a app > res > layout > haga clic con el botón derecho en > New > Layout Resource File y cree un nuevo archivo de diseño y nombre este archivo como item_view.xml y haga que el elemento raíz sea LinearLayout . Esto contendrá un TextView que se usa para mostrar los objetos de la array como salida.
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/itemTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout>
Paso 4: trabajar con el archivo MainActivity.java
Ahora vaya a la carpeta java y en MainActivity.java y proporcione la implementación a ArrayAdapter. MainActivity.java
Java
import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { ListView simpleListView; // array objects String courseList[] = {"C-Programming", "Data Structure", "Database", "Python", "Java", "Operating System", "Compiler Design", "Android Development"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); simpleListView = (ListView) findViewById(R.id.simpleListView); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.item_view, R.id.itemTextView, courseList); simpleListView.setAdapter(arrayAdapter); } }