簡體   English   中英

RecyclerView正在使用我所有列表中的最后一個元素進行填充

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM