android - vfp - Lo que hacen bindView() y newView() en CursorAdapter
cursoradapter vfp (1)
Para comprender esto, primero debe comprender cómo funciona el BaseAdapter
, ya que el BaseAdapter
de BaseAdapter
es una subclase del BaseAdapter
de BaseAdapter
.
Android mantiene un grupo de vistas para un ListView
que le dará para que pueda reutilizarlo en lugar de crear una nueva vista cada vez.
En BaseAdapter
, tendrá una función llamada BaseAdapter , para la cual uno de los parámetros es un objeto de View
llamado convertView
. Básicamente, este convertView
será null
si la lista se está cargando por primera vez, y no será null
una vez que comience a deslizar la lista. Por lo tanto, en el método getView()
de su BaseAdapter
, comprobará si convertView
es null
. Si es así, lo inflarás. Luego puedes usar la vista y establecer sus elementos como normales. Esto mejorará enormemente el rendimiento de desplazamiento de una vista de lista.
Un CursorAdapter
facilita el uso cuando el origen de datos de una vista de lista es una base de datos. Sin embargo, en un adaptador de cursor, Android se encarga de comprobar si el convertView
es null
o no. En el método BaseAdapter , simplemente infla la vista y la devuelve. En el método BaseAdapter , establece los elementos de su vista.
Como ejemplo, imagine una vista de lista en un dispositivo que puede mostrar hasta 11 elementos de lista en la pantalla. En este caso, newView()
se llamará hasta 11 veces. Sin embargo, se bindView()
muchas veces cada vez que desplace la vista de lista. Las 11 vistas que creó en su nuevo método de Vista se reutilizarán una y otra vez a medida que se desplaza por la lista.
Tengo un CursorAdaptor
personalizado en mi proyecto con los métodos anulados bindView(View view, Context context, Cursor cursor)
y newView(View view, Context context, Cursor cursor)
. Quiero saber para qué se utiliza CursorAdapter
y cuál es la diferencia entre y los usos de anular bindView()
y newView()
.
He leído el Sitio del desarrollador y this tutorial pero aún no lo entendí. Como soy un principiante de Android, ayúdame a entender este concepto.