Quiero crear un custom adapter
para mi vista de lista. ¿Hay algún artículo que pueda explicarme cómo crear uno y también explicar cómo funciona?
android
listview
android-tablelayout
custom-adapter
Harsha MV
fuente
fuente
Respuestas:
Esta es una clase que había usado para mi proyecto. Necesitas tener una colección de tus artículos que quieras mostrar, en mi caso es así
<Item>
. Necesita anular elView getView(int position, View convertView, ViewGroup parent)
método.R.layout.itemlistrow
define la fila de laListView
.En la
MainActivity
definiciónListView
como esta,fuente
Sé que esto ya ha sido respondido ... pero quería dar un ejemplo más completo.
En mi ejemplo, se llama al
ListActivity
que mostrará nuestra costumbre , porque en mi proyecto esto mostrará las diferentes opciones que mi usuario puede configurar para controlar mi aplicación. Hay dos tipos de elementos de lista, un tipo de elemento de lista solo tiene un y el segundo tipo de elemento de lista solo tiene un . Puede poner los widgets que desee dentro de cada tipo de elemento de lista, pero mantuve este ejemplo simple.ListView
OptionsActivity
Activity
TextView
Button
El
getItemView()
método verifica qué elementos de la lista deben ser del tipo 1 o del tipo 2. De acuerdo con mis entradas estáticas que definí arriba, los primeros 5 elementos de la lista serán el tipo de elemento de la lista 1, y los últimos 5 elementos de la lista serán el tipo de elemento de la lista 2 Entonces, si compila y ejecuta esto, tendrá un elementoListView
que tiene cinco elementos que solo contienen aButton
, y luego cinco elementos que solo contienen aTextView
.A continuación se muestra el
Activity
código, el archivo xml de actividad y un archivo xml para cada tipo de elemento de lista.OptionsActivity.java:
activity_options.xml:
list_item_type_1.xml:
list_item_type2.xml:
fuente
Este código es fácil de entender.
three_horizontal_text_views_layout.xml
ThreeStrings.java
ThreeHorizontalTextViewsAdapter.java
main_layout.xml
MainActivity.java
fuente
ThreeHorizontalTextViewsAdapter.java
. ¿Es lo mismo que permanecer?Activities
Google tiene un ejemplo llamado EfficientAdapter, que en mi opinión es el mejor ejemplo simple de cómo implementar adaptadores personalizados. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html @CommonsWare ha escrito una buena explicación de los patrones utilizados en el ejemplo anterior http: // commonsware.com/Android/excerpt.pdf
fuente
Puede echar un vistazo a esta muestra en el ApiDemos oficial. Muestra cómo extenderlo
BaseAdapter
y aplicarlo a aListView
. Después de eso, solo mira la referenciaBaseAdapter
y trata de entender qué hace cada método (incluidos los heredados) y cuándo / cómo usarlo.Además, Google es tu amigo :).
fuente
revise este enlace , de manera muy simple a través de
convertView
, podemos obtener el diseño de una fila que se mostrará en la vista de lista (que es laparentView
).usando la posición, puede obtener los objetos de la
List<Item>
.después de eso tendremos que establecer los detalles deseados del objeto en los widgets de formulario identificados.
entonces devolverá la vista construida que se adjuntará a
parentView
(que es unListView
/GridView
).fuente
Aquí está el recorrido completo para crear un adaptador personalizado para la vista de lista paso a paso:
https://www.caveofprogramming.com/guest-posts/custom-listview-with-imageview-and-textview-in-android.html
fuente
Modelo de datos
Adaptador de matriz
Actividad principal
row_item.xml
fuente
Un ejemplo más compacto de un adaptador personalizado (usando list array como mis datos):
Y así es como se usa:
fuente
BaseAdapter
es el mejor adaptador personalizado para la vista de lista.y tiene muchas funciones como
getCount()
,getView()
etc.fuente
Es muy simple.
Fuente: Tutorial personalizado de ListView para Android
fuente
fuente
fuente