Cabeceras ListView de Android

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

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.

Puede usar mi MergeAdapter o el SeparatedListAdapter Jeff Sharkey para eso.

En el caso de MergeAdapter , debería agregar una View ordinaria (por ejemplo, TextView ) para un encabezado de sección, luego un Adapter para el contenido de esa sección. Enjabona, enjuaga, repite.