Voici le code que j'ai utilisé dans ma classe d'adaptateur RecycleView
. Je ne sais pas que c'est la bonne façon ou non d'utiliser la liaison de vue. Si vous avez une meilleure solution, répondez-moi. Je vous remercie.
@Override
public CategoryAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.common_circle_image, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull CategoryAdapter.MyViewHolder holder, final int position) {
holder.binding.img.setBackgroundResource(addAdapterData.get(position).getItemUrl());
holder.binding.txt.setText(addAdapterData.get(position).getItemName());
}
@Override
public int getItemCount() {
return addAdapterData.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
CommonCircleImageBinding binding;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
binding = CommonCircleImageBinding.bind(itemView);
binding.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
commonItemClick.onItemClick(getAdapterPosition(),"");
}
});
}
}
Aussi, je veux savoir s'il est juste d'utiliser R.layout.layout_name
et ViewBinding
dans la même classe.
Vous pouvez créer CommonCircleImageBinding
directement dans onCreateViewHolder
par CommonCircleImageBinding.inflate(LayoutInflater.from(parent.getContext()))
Puis transmettez-le à MyViewHolder