为什么我们使用这样的东西用数据填充recyclerview?我们不能只创建一个简单的字符串数组,如 String [] titles 并显示它们,就像在ListView中一样?
List< Information> data
public void onBindViewHolder(MyViewHolder holder, int position) {
Information current = data.get(position);
holder.title.setText(current.title);
holder.icon.setImageResource(current.iconId);
}
我最近观看了一个关于如何使用recyclerview的视频,我无法理解为什么我们必须创建另一类信息,然后再在 onBindViewHolder 中创建其数组以显示数据。
有人可以帮我理解这段代码吗?
答案 0 :(得分:2)
如果您通过google查看this example,他们会使用数据集来填充RecyclerView中的数据。 看一下Google的文档:
由RecyclerView调用以显示指定位置的数据。此方法应更新itemView的内容以反映给定位置的项目。
请注意,与ListView不同,如果项目的位置在数据集中发生更改,则RecyclerView不会再次调用此方法,除非项目本身无效或无法确定新位置。因此,您只应在获取此方法中的相关数据项时使用position参数,并且不应保留它的副本。如果您稍后需要某个项目的位置(例如在单击侦听器中),请使用具有更新的适配器位置的getAdapterPosition()。如果Adapter可以处理有效的部分绑定,则覆盖onBindViewHolder(ViewHolder,int,List)。
答案 1 :(得分:0)
String [] title ;
int [] imageID;
onBindViewHolder(MyViewHolder holder, int position) {
Information current = data.get(position);
holder.title.setText(title [position]); holder.icon.setImageResource(imageID [position]);
}