Preference的onCreateView和onBindView方法之间的区别

时间:2011-09-08 10:52:26

标签: android

偏好中的onCreateViewonBindView方法之间有什么区别?

在文档中,它说onBindView

  

将创建的视图绑定到此首选项的数据。这是一个   在布局和设置中获取对自定义视图的引用的好地方   他们的属性。

为什么在我的布局中为Views设置属性是个好地方?目前我在onCreateView方法中设置属性,一切似乎都正常。 根据我的经验,看起来两种方法总是一起调用。也许在某些情况下只调用onBindView

1 个答案:

答案 0 :(得分:7)

onCreateView()用于创建最终将包含Preference UI的View层次结构。 onBindView()用于将实际数据绑定到onCreateView()中创建的View层次结构。

该模式将View层次结构(缓存)的创建与数据绑定到View层次结构分开。在Preference的情况下,onCreateView()仅被调用一次,但每次UI需要加载首选项视图时都会调用onBindView()

我猜您当前的设置有效,因为您永远不会更改您在首选项上设置的属性。最好在onBindView()中设置View层次结构的属性,以防它需要是动态的。

(另外,这个View创建与绑定设计模式也可以在CursorAdapters中看到,它只能在屏幕上创建足够的视图,但不断将这些视图绑定到新数据。)