2010-09-17 23 views
12

Me pregunto si hay una manera de ocultar un campo en Android.
Intenté establecer el valor en un TextEdit y luego hacer el TextEdit invisible, pero el resultado es que el valor es invisible, pero el control toma espacio.campo oculto en ListView Android?

En mi caso, quiero almacenar un valor extra en una fila de un ListView.
¿Hay alguna otra solución además de usar campos ocultos?

Respuesta

24

Utilice el campo View public static final int GONE de View.

En su caso textEdit.setVisibility(View.GONE), o en XML android:visibility="gone"

Ajuste del fin de INVISIBLE no toma en consideración el diseño, pero GONE hace.

+0

Genial, eso es exactamente lo que estaba buscando. ¡Gracias! – user449689

1

Apuesto a que los únicos datos invisibles que contienen las filas de ListView son id (largo). También estaba tratando de encontrar una manera de pasar algunos datos (como uuid) a la fila clic manipulador, sin embargo parece un TextView "Gone" es la mejor solución por ahora ...

15

View tiene métodos setTag() y que getTag() se puede utilizar para asociar algunos datos adicionales con la fila de ListView. Por ejemplo, estoy usando la clase CursorAdapter y en los métodos newView() y bindView() llamé al view.setTag(). Luego, en OnItemClickListener llamo al view.getTag().

+3

Esta es en realidad una respuesta mucho más relevante a esta pregunta. – Wakka02

+0

Estaba buscando esto, ¡genial! –

+0

A partir de las respuestas a preguntas relacionadas, esto tiene dos problemas: uno es que establecer una etiqueta significa que no es obvio para otros desarrolladores que pueden trabajar con su código al mirar el XML qué datos están realmente en la vista. La otra es que setTag acepta un int (u Objeto que necesita ser lanzado) y puede ser sobrescrito en otro lugar accidentalmente. Parece que hay dos buenas respuestas aquí; uno es el TextView como se sugiere aquí, aunque parece un poco hacky. La razón por la que lo uso en lugar de la alternativa (atributos XML personalizados) es porque lo que parece ser la forma correcta de hacerlo es terriblemente intrincado. – kungphu