- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Preference 中的onCreateView
和onBindView
方法有什么区别?
在文档中它说onBindView
:
Binds the created View to the data for this Preference. This is a good place to grab references to custom Views in the layout and set properties on them.
为什么它是在我的布局中设置 View 属性的好地方?目前我正在 onCreateView
方法中设置属性,一切似乎都正常。根据我的经验,这两种方法似乎总是一起调用。也许有一些情况只调用onBindView
?
最佳答案
onCreateView()
用于创建最终将包含首选项 UI 的 View 层次结构。 onBindView()
用于将实际数据绑定(bind)到在 onCreateView()
中创建的 View 层次结构。
该模式将 View 层次结构的创建(已缓存)与数据绑定(bind)到该 View 层次结构分开。在 Preference 的情况下,onCreateView()
只被调用一次,但是每次 UI 需要加载 Preference View 时,onBindView()
都会被调用。
我猜您当前的设置是有效的,因为您从不更改您在首选项中设置的属性。最好在 onBindView()
中设置 View 层次结构的属性,以防它需要动态。
(顺便说一句,这种 View 创建与绑定(bind)设计模式也出现在 CursorAdapters 中,它只创建足够的 View 来显示在屏幕上,但不断地将这些 View 绑定(bind)到新数据。)
关于android - Preference 的 onCreateView 和 onBindView 方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7346890/
我想知道如何更有效地重用一些代码来显示一个适合 getView()[BaseAdapter]、onBindView() [RecyclerView] 或 onCreateView() [Fragmen
@Override public void onBindViewHolder(CustomViewHolder holder, int position) { Chapter
在滚动 RecyclerView 时,TextView 中的数据会发生变化,即使数组 logtime.get(i).getTime() 中的数据也会发生变化> 不会改变。只有当我们将数据放入动态生成的
我使用 notifyItemRemoved() 方法我想更改其他剩余项目,但该方法不会触发 onBindView() 方法。 除了使用 notifyDataSetChanged() 之外,我该怎么做。
没有出现任何错误,所有数据似乎都有效。出于某种原因,正在调用与 View 相关的方法。我已经确定了以下几点: getItemCount() 是唯一被调用的适配器方法,它返回一个正整数值,(我知道这将是
我遇到了一个奇怪的错误,如果 getItemCount 返回 1(数据结构的大小),适配器不会显示任何卡片。 我的适配器代码 - public class SingleAdapter extends
Preference 中的onCreateView 和onBindView 方法有什么区别? 在文档中它说onBindView: Binds the created View to the data
在 RecyclerView.Adapter 中使用以下代码: onBindViewHolder(VH holder, int position){ holder.itemView.setAlp
我有两个 RecyclerViews 垂直放置在 LinearLayout 中。我需要使它们都可滚动,这就是为什么我将 LinearLayout 放在 NestedScrollView 中的原因 这是
我从 firebase 获取数据,并将其填充到 userMessageList.adapter 中,并收到通知,并且 getItemCount 显示正确的计数,但 onBindViewHolder 仅
我是一名优秀的程序员,十分优秀!