簡體   English   中英

RecyclerView onbindViewHolder

[英]RecyclerView onbindViewHolder

我正在嘗試在onBindViewHolder中設置視圖,但是無法選擇它們

我應該在布局中使用ID還是...?

適配器:

public class RV_Adapter extends RecyclerView.Adapter {
private Context context;
private List<Image> images;

public RV_Adapter(Context context, List<Image> Images){
    this.context = context;

    images = Images;
}



@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view= LayoutInflater.from(context).inflate(R.layout.rv_layout,parent,false);
    return new ImageViewHolder(view);
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    Image image=images.get(position);
    holder.

}

@Override
public int getItemCount() {
    return images.size();
}

class ImageViewHolder extends RecyclerView.ViewHolder{

   private ImageView rvimg;
   private TextView rvtxt;
   private TextView rvcontent;



public ImageViewHolder(View itemView) {
       super(itemView);
       rvimg=itemView.findViewById(R.id.rv_imgview);
       rvtxt    =itemView.findViewById(R.id.rv_title);
       rvcontent=itemView.findViewById(R.id.rv_content);
   }
 }
}

任何建議如何設置持有人?

添加:

public class RV_Adapter extends RecyclerView.Adapter<RV_Adapter.ImageViewHolder> {
...
}

再次重新實現抽象方法。

我正在編寫一個demoadapterclass。 請嘗試實施。 如果您遇到任何問題,請告訴我。

public class DemoAdapter extends 
RecyclerView.Adapter<DemoAdapter.ViewHolder> {

private List<Image> mImageItemList;
private Context context;
public IRvGalleryImageListener mIRvGalleryImageListener;

public interface IRvGalleryImageListener {
    void onClickGalleryImage(Image item, int position);
}

public DemoAdapter(Context context, List<Image> itemList) {
    mIRvGalleryImageListener = (IRvGalleryImageListener)context;
    this.mImageItemList = itemList;
    this.context = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.galery_image_list_item, null);
    return new ViewHolder(layoutView);
}

public class ViewHolder extends RecyclerView.ViewHolder {
    TextView mTvTitle;
    ImageView mIvGalleryImage;
    public ViewHolder(View v) {
        super(v);
        try {
            mTvTitle = (TextView) v.findViewById(R.id.tv_title_main);
            mIvGalleryImage = (ImageView) v.findViewById(R.id.iv_gallery_image);

            v.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mIRvGalleryImageListener.onClickGalleryImage(mImageItemList.get(getAdapterPosition()),getAdapterPosition());
                }
            });

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    if(!TextUtils.isEmpty(mImageItemList.get(position).getTitle()) && !mImageItemList.get(position).getTitle().equals(""))
        holder.mTvTitle.setText(mImageItemList.get(position).getTitle());


         holder.mIvGalleryImage.setImageURI(Uri.parse(AppConstants.IMAGE_ENDPOINT_CACHED_IMAGE + mImageItemList.get(position).getImage()));
}

@Override
public int getItemCount() {
    return this.mImageItemList.size();
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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