![](/img/trans.png)
[英]RecyclerView is populating with the last item on my list (I'm getting the same item)
[英]RecyclerView is populating with the last element all my list
我有一个RecyclerView,可以放大5张图像,获取每张图像并循环遍历,然后将其放入模型中并在对话框中显示,但事实是显示的是5张相同的图像,而不是显示不同的图像。
public void showHeartDialog() {
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(true);
dialog.setContentView(R.layout.dialog_most_used_cars);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
mRecyclerViewFrases = dialog.findViewById(R.id.recyclerView);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mActivity);
mRecyclerViewFrases.setLayoutManager(linearLayoutManager);
for (int i = 0; i < mDataOfUse.getMostUsedCars.size(); i++) {
model.setImage(mGetBitmap.getBitmapOfCar(mDataOfUse.getOrderedCars().get(i)));
mCarsArrayList.add(model);
}
RecyclerAdapter mAdapter = new RecyclerAdapter (R.layout.item_car,mActivity,mCarsArrayList,dialog);
mRecyclerViewCars.setAdapter(mAdapter);
dialog.show();
}
我的适配器绑定视口
@Override
public void onBindViewHolder(FavoriteCarsViewHolder holder, int position) {
CarModel model = mCarArrayList.get(position);
holder.carFav.setImageBitmap(model.getImage());
}
还有我的模特
public class CarModel{
private Bitmap image;
public CarModel() {
}
public Bitmap getImage() {
return image;
}
public void setImage(Bitmap image) {
this.image = image;
}
}
问题是我的recyclerview显示了5辆车,但这似乎是汽车arraylist的最后一个元素,当同一辆车填充5个空格时,它应该显示加载到arraylist中的5辆不同
谢谢
我认为这是因为整个mCarsArrayList
都引用同一对象。
尝试添加此行
model = new Model();
之前
model.setImage(mGetBitmap.getBitmapOfCar(mDataOfUse.getOrderedCars().get(i)));
加
CarModel模型= new CarModel(); 在for循环中
for (int i = 0; i < mDataOfUse.getMostUsedCars.size(); i++) {
CarModel model = new CarModel();
model.setImage(mGetBitmap.getBitmapOfCar(mDataOfUse.getOrderedCars().get(i)));
mCarsArrayList.add(model);
}
通知适配器
RecyclerAdapter mAdapter = new RecyclerAdapter (R.layout.item_car,mActivity,mCarsArrayList,dialog);
mRecyclerViewCars.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
dialog.show();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.