He hecho una lista de elementos varias veces usando Android RecyclerView
, pero es un proceso bastante complicado. Revisando uno de los numerosos tutoriales en línea ( esto , esto y esto son buenos), pero estoy buscando un ejemplo básico que puedo copiar y pegar para ponerme en marcha rápidamente. Solo son necesarias las siguientes características:
- Diseño vertical
- Un solo TextView en cada fila
- Responde a eventos de clic
Como he deseado esto varias veces, finalmente decidí hacer la respuesta a continuación para mi referencia futura y la suya.
android
android-recyclerview
Suragch
fuente
fuente
Respuestas:
El siguiente es un ejemplo mínimo que se verá como la siguiente imagen.
Comience con una actividad vacía. Realizará las siguientes tareas para agregar RecyclerView. Todo lo que necesita hacer es copiar y pegar el código en cada sección. Más tarde, puede personalizarlo para satisfacer sus necesidades.
Actualizar dependencias de Gradle
Asegúrese de que las siguientes dependencias estén en su
gradle.build
archivo de aplicación :Puede actualizar los números de versión a lo que sea más actual . Use en
compile
lugar deimplementation
si todavía está usando Android Studio 2.x.Crear diseño de actividad
Agregue el
RecyclerView
a su diseño xml.activity_main.xml
Crear diseño de fila
Cada fila en nuestro
RecyclerView
solo tendrá una solaTextView
. Cree un nuevo archivo de recursos de diseño.recyclerview_row.xml
Crea el adaptador
El
RecyclerView
necesita un adaptador para poblar los puntos de vista de cada fila con sus datos. Crea un nuevo archivo java.MyRecyclerViewAdapter.java
Notas
ListViews
y es una necesidad común. Puede eliminar este código si no lo necesita.Inicializar RecyclerView en actividad
Agregue el siguiente código a su actividad principal.
MainActivity.java
Notas
ItemClickListener
que definimos en nuestro adaptador. Esto nos permite manejar eventos de clic de fila enonItemClick
.Terminado
Eso es. Debería poder ejecutar su proyecto ahora y obtener algo similar a la imagen en la parte superior.
Continuando
Agregar un divisor entre filas
Puedes agregar un divisor simple como este
Si quieres algo un poco más complejo, mira las siguientes respuestas:
Cambiar el color de la fila al hacer clic
Vea esta respuesta para saber cómo cambiar el color de fondo y agregar el efecto dominó cuando se hace clic en una fila.
Actualizando filas
Consulte esta respuesta para saber cómo agregar, eliminar y actualizar filas.
Otras lecturas
fuente
Vista mínima de Reciclador lista para usar plantilla de Kotlin para:
Sé que este es un hilo viejo y también lo son las respuestas aquí. Agregando esta respuesta para referencia futura:
Agregue una vista de reciclaje en su diseño
Cree un diseño para mostrar elementos de la lista (list_item.xml)
Ahora cree un adaptador mínimo para contener datos, el código aquí se explica por sí mismo
Agregue esta clase para manejar eventos de clic único y clic largo en elementos de lista
Por último, configure su adaptador en Recycler View y agregue Touch Listener para comenzar a interceptar el evento táctil para tocar una o dos veces los elementos de la lista
Bono; Actualizar datos
Resultado:
fuente
Esta será la versión más simple de la implementación de RecyclerView.
activity_main.xml
list_item_view.xml
CustomAdapter.java
MainActivity.java
fuente
Comience agregando la biblioteca de reciclaje.
Crear clase de modelo.
crear clase de adaptador.
crear diseño row_uses.xml
Encuentre la vista de reciclaje y complete los datos.
encuentre el tutorial completo y el código fuente aquí:
Android RecyclerView
fuente
usersAdapter = new UsersAdapter(userModelList,this);
?Basado en diferentes fuentes, he creado una implementación simple de RecyclerView usando una biblioteca simple.
Agregue esta línea en
build.gradle
AddCreate un RecyclerView agregando MyRecyclerView en activity_main.xml con
Ahora en MainActivity, cree un ViewHolder pasando el nombre de la clase que necesita vincularse
Cree elementos de lista de variables y adaptadores con muy pocas líneas pasando elementos, clase y diseño en el adaptador
ClickListener se puede agregar con las siguientes líneas
Todo está hecho.
Más ejemplos e implementación se pueden encontrar aquí . Espero que esto ayude !!!
fuente
Ahora necesitas 1 adaptador para todos
RecyclerView
onBindViewHolder
, sinonCreateViewHolder
manipulación.Muestro aquí la configuración de dos diferentes
RecyclerView
por 1 adaptador -activity_home.xml
Puede ver que paso la lista, la identificación del diseño del elemento y hago clic en el oyente desde el diseño.
Estos atributos personalizados son creados por BindingAdapter .
Ahora desde Actividad, pasa la lista, haga clic en oyente como
HomeActivity.java
No desea leer demasiado, clonar / descargar directamente el ejemplo completo en mi repositorio de github. Y pruébalo tú mismo.
Puedes ver
GeneralAdapter.java
en el repositorio anterior.Si tiene problemas al configurar el enlace de datos, consulte esta respuesta .
fuente
Como todavía no puedo comentar, voy a publicar como respuesta el enlace ... He encontrado un tutorial simple y bien organizado sobre recyclerview http://www.androiddeft.com/2017/10/01/recyclerview-android/
Aparte de eso, cuando va a agregar una vista de reciclador a su actividad, lo que desea hacer es lo siguiente y cómo debe hacerlo, se describe en el enlace
fuente
Puede usar un adaptador abstracto con utilidades y filtros diff
SimpleAbstractAdapter.kt
Y extienda el adaptador abstracto con métodos de implementos
TasksAdapter.kt
Adaptador Init
y llenar
agregar filtro personalizado
filtrar datos
fuente
Dependencias
Una clase para artículo de clic
RecyclerView de segunda clase
Clase de adaptador para artículo de reciclador
Clase de módulo
fuente
implementación androidx.recyclerview: recyclerview: .... Se recomienda actualizar a las bibliotecas androidx que están aquí:
https://developer.android.com/jetpack/androidx/releases/recyclerview
La etiqueta XML del widget de archivo de diseño debe actualizarse a: androidx.recyclerview.widget.RecyclerView
fuente
Aquí hay una solución de Kotlin mucho más nueva para esto que es mucho más simple que muchas de las respuestas escritas aquí, utiliza una clase anónima.
Me tomé la libertad de usar android.R.layout.simple_list_item_1 porque es más simple. Quería simplificarlo aún más y poner ItemHolder como una clase interna, pero no pude entender cómo hacer referencia a él en un tipo en el parámetro de la clase externa.
fuente