2011-07-24 14 views
6

implementé una vista de lista que implementa SectionIndexer ... todo bien hasta ahora.Mostrar/Ocultar Listview SectionIndex on demand

Normalmente los elementos están ordenados por nombre, pero también ofrezco la opción de ordenar la lista de una manera diferente, por distancia (del usuario a los objetos).

Por lo tanto, cuando la lista se ordena de la 2da manera, quiero ocultar el SectionIndex generado anteriormente.

No soy capaz de hacerlo.

lo intentara, re-escribiendo la mayor parte de los métodos, he probado con una separación en el Constructor (claro por qué no funciona, es imposible encontrar llamaron por segunda vez) incluso he probado con la aplicación de una segunda listadapter y solo usando uno diferente? ¡Incluso en este caso, se muestra el SEctionIndex! Realmente no entiendo este.

Así que sería muy grande, si alguien sabe que hay de nuevo :)

muchas gracias, micrófono

Respuesta

2

Sus observaciones son correctas. Déjame decirte primero por qué el constructor nunca recibe una llamada la segunda vez. SectionIndexer es un tipo especial. Crean el índice solo una vez para un conjunto particular de datos y los vuelven a usar en ese adaptador. El problema más grande con el que me había encontrado fue cuando los datos subyacentes cambiaron para el adaptador, el sectionIndexer seguía siendo el mismo.

Compruebe mi Question y la respuesta allí.

Volviendo a su consulta aquí.

Si cambia la orientación después de seleccionar la segunda opción, observará que se llamará al constructor y podrá volver a llenar el sectionIndex nuevamente. Así que, básicamente, necesita llamar aSizeChanged nuevamente y obtener el índice de sección repoblado.

+0

te doy la recompensa, estás en lo cierto, pero por favor revisa mi respuesta a continuación, revisé mi código y lo publicaré aquí ... hay algo adicional que tienes que hacer, sugeriría, simplemente copia mi publicación a continuación, edite el suyo y agregue: =) la solución completa aquí. para que todos los demás tengan más fácil resolver el problema :) – cV2

+0

No pude ver su código. – PravinCG

+0

ACtually lo agregué a su publicación ..."había un botón de edición", debajo de su publicación, lo usé para publicar el código directamente en su publicación, parece que alguien lo eliminó :( – cV2

0

Cuando se corta con la lista de manera diferente, usted tiene una opción de dos para cargar de nuevo.

después llenaron los nueva colección para el adaptador

1) se puede hacer una notifiquen este adaptador.

2) puede volver a llenar el adaptador de configuración.

+0

lo siento, pero esto evita que los índices de la sección se oculten o desaparezcan :( – cV2

+0

no debería ..u tener que administrar la colección qué va a completar el adaptador – dhams

+0

No estoy seguro de por qué esto fue votado. Es una respuesta relevante . – PravinCG

0

Si por SectionIndexer que permanece en pantalla se quiere decir la superposición de sección puede lograrlo llamando al setFastScrollEnabled(false) antes de cambiar a su otro adaptador de lista que no implementa SectionIndexer.