偏好中的onCreateView
和onBindView
方法之间有什么区别?
在文档中,它说onBindView
:
将创建的视图绑定到此首选项的数据。这是一个 在布局和设置中获取对自定义视图的引用的好地方 他们的属性。
为什么在我的布局中为Views设置属性是个好地方?目前我在onCreateView
方法中设置属性,一切似乎都正常。
根据我的经验,看起来两种方法总是一起调用。也许在某些情况下只调用onBindView
?
答案 0 :(得分:7)
onCreateView()
用于创建最终将包含Preference UI的View层次结构。 onBindView()
用于将实际数据绑定到onCreateView()
中创建的View层次结构。
该模式将View层次结构(缓存)的创建与数据绑定到View层次结构分开。在Preference的情况下,onCreateView()
仅被调用一次,但每次UI需要加载首选项视图时都会调用onBindView()
。
我猜您当前的设置有效,因为您永远不会更改您在首选项上设置的属性。最好在onBindView()
中设置View层次结构的属性,以防它需要是动态的。
(另外,这个View创建与绑定设计模式也可以在CursorAdapters中看到,它只能在屏幕上创建足够的视图,但不断将这些视图绑定到新数据。)