web-dev-qa-db-ja.com

Android RecyclerViewアダプタクラスのビューバインディングの正しい方法は何ですか?

これが、RecycleViewアダプタクラスで使用したコードです。これが正しい方法であるか、またはビューバインディングを使用しないかはわかりません。より良い解決策があれば私に答えてください。ありがとうございました。

@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(),"");
            }
        });
    }
}

また、同じクラスでR.layout.layout_nameViewBindingを使用するのが正しいことも知りたいです。

5
Vijay Villiers

CommonCircleImageBindingonCreateViewHolderCommonCircleImageBinding.inflate(LayoutInflater.from(parent.getContext()))で直接作成できます

次に、それをMyViewHolderに渡します。

0
Nam Đỗ