2011-01-25 10 views
6

Estoy tratando de configurar una imagen GridView Layout, y esto implica derivar una nueva clase de la clase BaseAdapter. He estado usando el tutorial en el sitio web developer.android.com, pero todavía no entiendo muy bien lo que significa. ¿Podría alguien explicarme qué es exactamente un BaseAdapter? No entiendo la definición proporcionada por el sitio web de desarrolladores de Android.Descripción de BaseAdapters y cómo usarlos

Gracias

Respuesta

3

http://developer.android.com/resources/tutorials/views/hello-gridview.html

El GridView es una subclase de un tipo de vista conocido como un AdapterView. Por lo general, contienen varias vistas más pequeñas, pero confían en un adaptador para darles esas vistas. La clase BaseAdapter es una que amplía para anular los métodos que le dicen a AdapterView (su GridView) qué mostrar. El método más importante para anular es el método getView(), en el que se devuelve la Vista para mostrar en una posición particular en la grilla.

Si bien esta configuración es un poco confusa y complicada, los desarrolladores de Android eligieron esto debido a todas las optimizaciones que permitió. Se obtiene una gran cantidad de optimización para AdapterViews mediante la reutilización de Vistas en lugar de crear nuevas en el método getView. Esto es para lo que es el argumento convertView que puedes ver en el método getView. Si convertView == null, entonces el método necesita crear un nuevo objeto View y devolver eso, una operación costosa. Si no es nulo, entonces el Adaptador puede reutilizar la Vista, simplemente cambiando la imagen en ese ejemplo tutorial.

19

Se utiliza un adaptador para vincular datos a una vista. Ver AdapterView:

Un AdapterView es una vista cuyos hijos son determinados por un adaptador.

Varios puntos de vista de diseño se derivan de AdapterView como GridView, ListView, galeria.

Por supuesto, generalmente no usa AdapterView y Adapter directamente, sino que usa o deriva de una de sus subclases. Las subclases de Adapter pueden agregar funcionalidad adicional que modifique cómo debe vincular los datos para verlos.

BaseAdapter es una clase base abstracta para la interfaz del adaptador para simplificar la implementación de adaptadores. Puede implementar el suyo propio, pero el marco ya proporciona algunos adaptadores bastante flexibles. Algunos adaptadores populares son:

ArrayAdapter,

  • se une un conjunto de datos a una vista
  • anulación getView() para inflar, llenar y devolver una vista personalizada para el índice dado en el formación. El método getView() incluye una oportunidad de reutilizar vistas a través del parámetro convertView.

CursorAdapter,

  • une los datos de un cursor (como un cursor de base de datos) a una vista
  • abstracta para que no lo usa directamente, utilice una subclase o deriven su propio
  • implementa el método abstracto newView() para inflar, completar y devolver la vista deseada para la posición actual del cursor e implementar el método abstracto bindView para poblar una vista existente que está siendo reutilizado ..

SimpleCursorAdapter,

  • una aplicación concreta de CursorAdapter
  • puede tomar un diseño de fila y un mapeo de las columnas del cursor para remar widgets de diseño
  • admite texto e imágenes, pero puede personalizar utilizando setViewText y setViewImage
  • pueden personalizar otros enlaces mediante un gancho: los clientes implementan la interfaz SimpleCursorAdapter.ViewBinder con un método setViewValue() para inflar, completar y devolver la vista deseada para una fila determinada (estado actual del cursor) y "columna" de datos. Este método puede definir solo las vistas y enlaces "especiales", pero aún diferir al comportamiento estándar de SimpleCursorAdapter para los enlaces "normales".
Cuestiones relacionadas