2009-12-27 41 views
32

¿Cómo se hacen esas etiquetas de encabezado estándar en el control ListView?Android ListView Headers

Un ejemplo sería en la aplicación de contactos que ve la primera letra de los contactos agrupados para cada letra en el alfabeto.

Si es posible, proporcione algunos fragmentos de código sobre cómo construir los datos agrupados y la visualización de ListView.

Respuesta

33

Puedes usar mi MergeAdapter o Jeff Sharkey's SeparatedListAdapter para eso.

En el caso de MergeAdapter, deberá añadir un ordinario View (por ejemplo, TextView) para un encabezado de sección, a continuación, un Adapter de los contenidos de esa sección. Enjabona, enjuaga, repite.

+3

¿Es esta la metodología estándar que google utiliza en sus aplicaciones? Vi que había algunas implementaciones personalizadas, pero parecía que este tipo de trabajo se habría integrado en la API en este momento. La mayoría de las implementaciones personalizadas que vi fueron para Android 0.9. –

+1

"¿Es esta la metodología estándar que Google usa en sus aplicaciones?" No tengo idea. Tendría que mirar su código fuente en http://source.android.com. "pero parecía que este tipo de trabajo se habría integrado en la API en este momento" Fuera del sistema de preferencias, no hay nada integrado en Android que proporcione una API para tener encabezados de sección. La implementación de Jeff Sharkey fue originalmente para 0.9 pero probablemente todavía funcione; mis dos implementaciones funcionan hasta 2.0.1. – CommonsWare

+0

Enlace para SectionedAdapter, parece roto. Todo lo que está en la carpeta ListView es HeaderFooter, \t RateListView and Selector. – Diederik