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



Preference中onCreateViewonBindView方法的区别是什么?

文档中说onBindView:

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

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

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

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

我猜你当前的设置是有效的,因为你从来没有改变你在首选项上设置的属性。最好在onBindView()中设置视图层次结构的属性,以防它需要是动态的。

(顺便说一下,这种视图创建与绑定的设计模式也可以在CursorAdapters中看到,它只创建足够在屏幕上显示的视图,但不断地将这些视图绑定到新数据。)

最新更新