2011-09-08 22 views
10

¿Cuál es la diferencia entre los métodos onCreateView y onBindView en Preferencia?Diferencia entre los métodos preferenciales onCreateView y onBindView

En la documentación se dice que onBindView:

une a la vista creada con los datos de esta preferencia. Este es un buen lugar para obtener referencias de vistas personalizadas en el diseño y establecer propiedades en ellas.

¿Por qué es un buen lugar para establecer propiedades en Views en mi diseño? Actualmente estoy estableciendo propiedades en el método onCreateView y todo parece funcionar bien. Desde mi experiencia, parece que ambos métodos siempre se llaman juntos. Tal vez hay algunas situaciones en las que solo se llama onBindView?

+0

'onCreateView 'usted se limita a ver la construcción y la preparación para el enlace. 'onBindView' se limita a inicializar la vista en función de los datos; eso es lo que es el enlace. Hay situaciones, de lo contrario no serían métodos separados, y la documentación diría algo diferente. Tu código está funcionando "por accidente". –

+0

escape-llc- Los comentarios no se pueden marcar como la respuesta aceptada. Publique su respuesta en forma de respuesta en lugar de un comentario :) –

+0

Veo personas publicando comentarios como respuestas, pero solo en raras ocasiones veo lo contrario. :-) – davidcesarino

Respuesta

7

onCreateView() es para crear la jerarquía de Vista que eventualmente contendrá la IU de Preferencia. onBindView() es para enlazar datos reales a esa jerarquía de vista creada en onCreateView().

El patrón separa la creación de la jerarquía de Vista, que se almacena en caché, del enlace de datos a esa jerarquía de Vista. En el caso de Preferencia, onCreateView() solo se llama una vez, pero se llama a onBindView() cada vez que la UI necesita cargar la Vista de Preferencias.

Supongo que su configuración actual funciona porque nunca cambia las propiedades que estableció en la preferencia. Sería mejor configurar las propiedades de la jerarquía de Vista en onBindView(), en caso de que alguna vez necesite ser dinámico.

(Dicho sea de paso, esta visión de la Creación versus unión patrón de diseño también se ve en CursorAdapters, donde sólo crea suficientes vistas para mostrar en pantalla, pero está presente dictamen nuevos datos constantemente vinculante.)

Cuestiones relacionadas