【问题标题】:How to implement CheckBox in my Recyclerview?如何在我的 Recyclerview 中实现 CheckBox?
【发布时间】:2020-09-23 21:14:59
【问题描述】:

我使用 recyclerview(带有片段)创建了选项卡布局。现在我正在尝试实现复选框,但我坚持了下来。我在网上尝试了一些解决方案,但没有任何结果。我将复选框部分添加到 xml 中。你能帮帮我吗?

RecyclerViewAdapter.java

public class RecyclerViewAdapter extends RecyclerView.Adapter <RecyclerViewAdapter.MyViewHolder>{
    Context mContext;
    List<RecTab1> mData;
    public RecyclerViewAdapter(Context mContext, List<RecTab1> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v ;
        v = LayoutInflater.from(mContext).inflate(R.layout.item_tab1,parent,false);
        MyViewHolder vHolder = new MyViewHolder(v);
        return vHolder;
    }
    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {

        holder.tv_name.setText(mData.get(position).getName());
        holder.tv_subName.setText(mData.get(position).getSubName());

    }
    @Override
    public int getItemCount() {
        return mData.size();
    }
    public static class MyViewHolder extends RecyclerView.ViewHolder{

        private TextView tv_name;
        private TextView tv_subName;
        public MyViewHolder (View itemView){
            super (itemView);
            tv_name = (TextView) itemView.findViewById(R.id.Item1Name);
            tv_subName = (TextView) itemView.findViewById(R.id.Item1SubName);
        }
    }
}

项目java文件:

public class RecTab1 {
    private String Name;
    private String SubName;

    public RecTab1(){
    }
    public RecTab1 (String name, String subName){
        Name = name;
        SubName = subName;
    }
    public String getName() {
        return Name;
    }
    public String getSubName() {
        return SubName;
    }
    public void setName(String name) {
        Name = name;
    }
    public void setSubName(String subName) {
        SubName = subName;
    }
}

【问题讨论】:

  • 你想用复选框做什么?如果您只想包含它...添加它的方式与您在 myviewholder 中的文本框相同

标签: java android android-studio checkbox


【解决方案1】:

在您的 R.layout.item_tab1 中添加复选框:

<CheckBox android:id="@+id/cb_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Check box text" />

然后在你的viewholder中定义它:

public static class MyViewHolder extends RecyclerView.ViewHolder {
    private TextView tv_name;
    private TextView tv_subName;
    private Checkbox cb_checkbox
    public MyViewHolder (View itemView){
        super (itemView);
        tv_name = (TextView) itemView.findViewById(R.id.Item1Name);
        tv_subName = (TextView) itemView.findViewById(R.id.Item1SubName);
        cb_checkbox = (CheckBox) itemView.findViewById(R.id.cb_checkbox)
    }
}

然后在你的 onBindViewHolder 中添加 setOnClickListener 到复选框:

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {

    holder.tv_name.setText(mData.get(position).getName());
    holder.tv_subName.setText(mData.get(position).getSubName());
    holder.cb_checkbox.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View arg0) {
          //Your code goes here
          }

}

希望对您有所帮助。在这里source 了解更多信息。

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多