ArrayAdapter en android para crear listview simple

He intentado crear una Activity en Android, esta actividad sólo contiene un ListView nada más.

Como sé que para llenar el listview necesitamos usar un ArrayAdapter .

Así que para entender el ArrayAdapter He leído el siguiente enlace:

Http://developer.android.com/reference/android/widget/ArrayAdapter.html

¡Pero todavía no puedo comprenderlo claramente!

Una de las mayores dudas es por qué el constructor necesita un TextView recursos TextView mientras mi actividad no está teniendo TextViews lo que debería tener para darle?

No estoy hablando de que este es el único constructor, pero lo que intento explicar es que soy incapaz de entenderlo.

Para crear un listview simple también me referí al siguiente enlace:

Simple ListView utilizando el ejemplo de ArrayAdapter.

¿Pero otra vez mi duda principal es porqué necesita un identificador del recurso de TextView?

Si alguien puede explicarlo con el ejemplo, será de gran ayuda.

EDITAR:

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); 

ArrayAdapter utiliza un TextView para mostrar cada elemento dentro de él. Detrás de las escenas, utiliza el método toString() de cada objeto que contiene y lo muestra en el TextView. ArrayAdapter tiene un número de constructores que se pueden utilizar y el que usted ha utilizado en su ejemplo es:

 ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) 

De forma predeterminada, ArrayAdapter utiliza el TextView predeterminado para mostrar cada elemento. Pero si lo desea, puede crear su propio TextView e implementar cualquier diseño complejo que desee extendiendo la clase TextView. Esto tendría que ir en el diseño para su uso. Puede hacer referencia a esto en el campo textViewResourceId para enlazar los objetos a esta vista en lugar del predeterminado.

Para su uso, sugeriría que utilice el constructor:

 ArrayAdapter(Context context, int resource, T[] objects). 

En su caso, esto sería:

 ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values) 

Y debería estar bien. Esto enlazará cada cadena con la pantalla de TextView predeterminada – fondo blanco sencillo y simple.

Así que para responder a su pregunta, usted no tiene que usar el textViewResourceId.

Pero de nuevo duda principal por qué TextView recurso id que necesita?

Observa el constructor y los parámetros.

 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

Se agrega en el nivel 1 de la API Constructor

Parámetros

context El context actual.

resource El ID de recurso para un archivo de diseño que contiene un diseño que se usará al instanciar vistas.

textViewResourceId El identificador del TextView dentro del recurso de diseño para ser objetos poblados Los objetos a representar en el ListView .

android.R.id.text1 refiere al id del texto en el recurso android. Así que no necesita tener uno en su actividad.

Aquí está la lista completa

http://developer.android.com/reference/android/R.id.html

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); 

this refiere al contexto de la actividad

Android.R.layout.simple_list_item_1 simple_list_item_1 es el diseño en android.R.layout.

android.R.id.text1 refiere a la identificación del recurso android.

values es una matriz de cadenas del enlace que proporcionaste

http://developer.android.com/reference/android/R.layout.html

 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

También soy nuevo en Android, así que podría estar equivocado. Pero según mi comprensión mientras que usa esto para la creación del listview el 2do argumento es la disposición de artículos de la lista. Un diseño consiste en muchas vistas (vista de imagen, vista de texto, etc). Con el argumento 3 está especificando en qué vista o texto desea que se muestre el texto.

 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

Aquí, resource significa el 'id' del Layout que está utilizando durante la instancia de la vista.

Ahora, este diseño tiene muchas vistas secundarias con sus propios identificadores. Por lo tanto, textViewResourceId indica qué vista secundaria necesitamos rellenar con los datos.

No es necesario usar id para textview. Puede obtener más información acerca de arrayadapter android . El código siguiente inicializa el arrayadapter.

 ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.single_item, eatables); 

El identificador de recursos de TextView que necesita es para un archivo de diseño de TextView, por lo que no estará en la misma actividad.

Puede crearlo en Archivo> Nuevo> XML> Archivo de disposición XML, e ingrese el tipo de widget, que es "TextView" en el campo de etiqueta raíz.

Fuente: https://www.kompulsa.com/the-simplest-way-to-implement-an-android-listview/

  • Obtener el elemento seleccionado y su posición en RecyclerView
  • Problemas de procesamiento Excepción generada durante la renderización: las matrices de color y posición deben tener la misma longitud
  • NotifyDataSetChanged () en Fragmento no está actualizando listview
  • Cómo ocultar el popup de filtro en ListView en Android?
  • Cómo combinar dos o más adaptadores y mostrar en un ListView en Android
  • Cómo obtener la posición de un elemento de un PopupMenu en un ListView personalizado
  • Detectar qué elemento seleccionado (en un ListView) generó el ContextMenu (Android)
  • Excepción de puntero nulo en setAdapter ()
  • Pinterest como Grid en Android
  • Obtener iconos de aplicaciones que se ejecutan en el dispositivo
  • Uso de opengl para renderizar cada elemento en un listview en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.