2011-09-08 119 views
10

Preference中onCreateViewonBindView方法之间的区别是什么?Preference的onCreateView和onBindView方法之间的区别

在文档它说,onBindView

绑定创建视图,为这种偏好的数据。这是一个 的好地方,可以在布局中获取对自定义视图的引用,并在其上设置 属性。

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

+0

'onCreateView “你只限于查看建筑和准备装订。 'onBindView'你只限于基于数据初始化视图;那是什么绑定。有些情况下,否则他们不会是单独的方法,并且文档会说不同的东西。您的代码正在“意外”工作。 –

+0

escape-llc-评论无法标记为接受的答案 - 请以答复的形式发布您的答案,而不是评论:) –

+0

我看到有人发表评论作为答案,但很少我看到相反的结果。 :-) – davidcesarino

回答

7

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

该模式将View层次的创建 - 从数据绑定到View层次结构 - 将被高速缓存的View层次结构分开。对于首选项,onCreateView()仅调用一次,但每次UI需要加载首选项视图时调用onBindView()

我猜测你的当前设置工作,因为你永远不会改变你在首选项上设置的属性。最好在onBindView()中设置View层次结构的属性,以防万一它需要动态变化。

(顺便说一句,这个视图创建与装帧设计图案也出现在CursorAdapters,它只能产生足够的视图来显示在屏幕上,而是不断地结合这些意见,以新的数据。)

相关问题