Как установить другой лимит для нескольких чекбоксов в элементе recyclerview

#android-recyclerview

Вопрос:

введите описание изображения здесь

Я могу выбрать 2 предмета из первой группы и выбрать 1 предмет из второй группы. Теперь должно быть определенное ограничение для каждой группы, а также для всего выбора. Как я могу его применить?

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

   
    holder.txt_ingredient.setText(ingredients.get(position).getName());
    ArrayList<HomeList.Ingredient> sizeArrayList = new ArrayList<>();
    sizeArrayList.addAll(ingredients);

    for (int i = 0; i < ingredients.get(position).getIngredients().size(); i  ) {
        indi.add(ingredients.get(position).getIngredients().get(i).getId());
    }
    for (int i = 0; i < sizeArrayList.get(position).getIngredients().size(); i  ) {

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View rowView = inflater.inflate(R.layout.checkbox_feild, null);
        holder.parentLinearSize.addView(rowView, holder.parentLinearSize.getChildCount() - 1);

    }

    for (int itemPos = 0; itemPos < holder.parentLinearSize.getChildCount(); itemPos  ) {
        View view1 = holder.parentLinearSize.getChildAt(itemPos);
        CheckBox ch = (CheckBox) view1.findViewById(R.id.chkSpe);
        TextView cat_value = (TextView) view1.findViewById(R.id.cat_value);

        String c = String.valueOf(sizeArrayList.get(position).getIngredients().size());
        ch.setText(sizeArrayList.get(position).getIngredients().get(itemPos).getTitle());


        ch.setOnCheckedChangeListener(null);
        int finalItemPos = itemPos;

        ch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                int limit = Integer.parseInt(sizeArrayList.get(position).getSelectionLimit());

     
                int globalInc = 0;

                if (globalInc == limit amp;amp; isChecked) {
                    ch.setChecked(false);
                    Toast.makeText(context,
                            "Limit reached!!!", Toast.LENGTH_SHORT).show();
                } else if (isChecked) {

                    globalInc  ;
                    Toast.makeText(context,
                            globalInc   " checked!",
                            Toast.LENGTH_SHORT)
                            .show();
                    ch.setSelected(isChecked);
                    if (ch.isChecked()) {
                        for (int i = 0; i < ingredients.get(position).getIngredients().size(); i  ) {

                            if (i == finalItemPos) {
                                ingredients.get(position).getIngredients().get(i).setQty("1");
                            } else
                                ingredients.get(position).getIngredients().get(i).setQty("0");
                        }
                        ingredients.get(position).setIsOpenSection("1");
                        onItemCheckListener.onItemCheck(sizeArrayList.get(position).getIngredients(), sizeArrayList.get(position));

                        Toast.makeText(context, sizeArrayList.get(position).getIngredients().get(finalItemPos).getPrice(), Toast.LENGTH_SHORT).show();
                        onRecycleItemClickListenerExtra.onItemClickListener(holder, position, "selectExtra", sizeArrayList.get(position).getIngredients().get(finalItemPos).getPrice(), "trextra");
                    } else {
                        onItemCheckListener.onItemUncheck(sizeArrayList.get(position).getIngredients().get(position));

                        onRecycleItemClickListenerExtra.onItemClickListener(holder, position, "DeselectExtra", sizeArrayList.get(position).getIngredients().get(finalItemPos).getPrice(), "trextra");

                        sizeArrayList.get(position).getIngredients().get(finalItemPos).setQty("0");
                    }
                } else if (!isChecked) {
                    globalInc--;
                }

                
            }
        });

        cat_value.setText(sizeArrayList.get(position).getIngredients().get(itemPos).getPrice());
        holder.maximum_amt.setText(sizeArrayList.get(position).getMaximumAmount());
        holder.select_limit.setText(sizeArrayList.get(position).getSelectionLimit());

        String count = String.valueOf(getItemCount());
        holder.total_itm_count.setText(c);


        String eql_les_grt = sizeArrayList.get(position).getEqualGraterLess();
        if (eql_les_grt.equalsIgnoreCase("1")) {

            if (lan.equals("English")) {
                String eql_ls_status = "Greater";
                holder.euql_grt_les.setText(eql_ls_status);
            }
            if (lan.equals("Español")) {
                String eql_ls_status = "Máximo";
                holder.euql_grt_les.setText(eql_ls_status);
            }

        }
        if (eql_les_grt.equalsIgnoreCase("2")) {
            if (lan.equals("English")) {
                String eql_ls_status = "Exactly";
                holder.euql_grt_les.setText(eql_ls_status);
            }
            if (lan.equals("Español")) {
                String eql_ls_status = "solo";
                holder.euql_grt_les.setText(eql_ls_status);
            }
        }
        if (eql_les_grt.equalsIgnoreCase("3")) {
            if (lan.equals("English")) {
                String eql_ls_status = "Less";
                holder.euql_grt_les.setText(eql_ls_status);
            }
            if (lan.equals("Español")) {
                String eql_ls_status = "Mínimo";
                holder.euql_grt_les.setText(eql_ls_status);
            }
        }



    holder.img_arrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            holder.rl_details.setVisibility(View.VISIBLE);
            holder.img_dwn_arrow.setVisibility(View.VISIBLE);
            holder.img_dwn_arrow.setVisibility(View.VISIBLE);
            holder.img_arrow.setVisibility(View.GONE);
            holder.parentLinearSize.setVisibility(View.VISIBLE);
        }
    });

    holder.img_dwn_arrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            holder.rl_details.setVisibility(View.GONE);
            holder.img_dwn_arrow.setVisibility(View.GONE);
            holder.img_dwn_arrow.setVisibility(View.GONE);
            holder.img_arrow.setVisibility(View.VISIBLE);
            holder.parentLinearSize.setVisibility(View.GONE);
        }
    });
}