'My array was not working properly. When I am selecting multiple data on plus button the 1st data is automaticaly wiped

In this adapter i am doing add and minus products. after adding products in array.the problem is when i am adding multiple products in array the first data is wiped automatically in array.

public class PackageOffersSubCategoryAdapter extends RecyclerView.Adapter<PackageOffersSubCategoryAdapter.MyViewHolder> {

    private Context context;
    private List<PackageOffersSubCategory> packageOffersSubCategoryList, selectedSubService;
    private String string, isClicked = "";
    private int totalPrice = 0;
    private  int index;

    public PackageOffersSubCategoryAdapter(Context context, List<PackageOffersSubCategory> packageOffersSubCategoryList, String id) {
        this.context = context;
        this.packageOffersSubCategoryList = packageOffersSubCategoryList;
        this.selectedSubService = selectedSubService;
        this.string = id;
        this.isClicked = isClicked;
    }

    @NonNull
    @Override
    public PackageOffersSubCategoryAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_sub_package, viewGroup, false);
        return new PackageOffersSubCategoryAdapter.MyViewHolder(itemView);
    }

    @SuppressLint("SetTextI18n")
    @Override
    public void onBindViewHolder(@NonNull PackageOffersSubCategoryAdapter.MyViewHolder myViewHolder, @SuppressLint("RecyclerView") int position) {


        myViewHolder.txtSubPackageName.setText(packageOffersSubCategoryList.get(position).getName());

        if (string.equalsIgnoreCase("custom")) {


            myViewHolder.imgPlus.setVisibility(View.VISIBLE);
            myViewHolder.imgMinu.setVisibility(View.VISIBLE);
            myViewHolder.txtSubPackagePrice.setVisibility(View.VISIBLE);

            if (getIndexOfValue(packageOffersSubCategoryList.get(position).getSubServiceId(), selectedSubSList) != RecyclerView.NO_POSITION) {
                myViewHolder.txtSubPackagePrice.setText("$ " + selectedSubSList.get(getIndexOfValue(packageOffersSubCategoryList.get(position).getSubServiceId(), selectedSubSList)).get("Price"));
                myViewHolder.txtSubPackageValue.setText(selectedSubSList.get(getIndexOfValue(packageOffersSubCategoryList.get(position).getSubServiceId(), selectedSubSList)).get("Value") + " " + packageOffersSubCategoryList.get(position).getUnit());
            } else {
                Map<String, String> map = new HashMap<>();
                map.put("SubServiceId", packageOffersSubCategoryList.get(position).getSubServiceId());
                map.put("SubServiceName", packageOffersSubCategoryList.get(position).getName());
                map.put("Value", "0");
                map.put("Price", "0");
                map.put("ServiceId",packageOffersSubCategoryList.get(position).getServiceId());
                selectedSubSList.add(map);
                myViewHolder.txtSubPackagePrice.setText("$ " + "0");
                myViewHolder.txtSubPackageValue.setText("0" + " " + packageOffersSubCategoryList.get(position).getUnit());
            }

        } else {
            myViewHolder.imgPlus.setVisibility(View.GONE);
            myViewHolder.imgMinu.setVisibility(View.GONE);
            myViewHolder.txtSubPackagePrice.setVisibility(View.GONE);
            myViewHolder.txtSubPackageValue.setText(packageOffersSubCategoryList.get(position).getValue() + " " + packageOffersSubCategoryList.get(position).getUnit());

        }

        myViewHolder.imgPlus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {

                    if (packageOffersSubCategoryList.get(position).getCoupon_status().equalsIgnoreCase("1")) {
                        txtApplyCoupon.setBackground(getResources().getDrawable(R.drawable.bg_dark_green_rounded));
                    } else {
                        txtApplyCoupon.setBackground(getResources().getDrawable(R.drawable.bg_grey_rounded));
                    }

                    myViewHolder.txtSubPackageValue.setText(Integer.parseInt(myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]) + 1 + " " + packageOffersSubCategoryList.get(position).getUnit());

                    Log.e("packagevalue", String.valueOf(Integer.parseInt(myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0])));
                    Log.e("packageSub", (1 + " " + packageOffersSubCategoryList.get(position).getUnit()));
                    packageOffersSubCategoryList.get(position).setValue(String.valueOf(Integer.valueOf((myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]))));
                    Log.e("packed",String.valueOf(Integer.valueOf((myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]))) );

                    count1 = Integer.parseInt(myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]);

                    if (count1 != 0) {
                        intPrice = Integer.parseInt(packageOffersSubCategoryList.get(position).getOriginalPrice()) * Integer.parseInt(String.valueOf(count1));
                        myViewHolder.txtSubPackagePrice.setText("$ " + String.valueOf(intPrice));
                    }

                    packageOffersSubCategoryList.get(position).setPrice(myViewHolder.txtSubPackagePrice.getText().toString().split(" ")[1]);
                    newTotalPrice = newTotalPrice + Integer.valueOf(packageOffersSubCategoryList.get(position).getOriginalPrice());
                    inrValue = String.valueOf(newTotalPrice * 74);
                    txtPrice.setText("$ " + String.valueOf(newTotalPrice));
                    radio_dollar.setText("$ " + String.valueOf(newTotalPrice));
                    radio_inr.setText("₹ " + inrValue);
                    strINRprice = inrValue;



                    if (getIndexOfValue(packageOffersSubCategoryList.get(position).getSubServiceId(), selectedSubSList) != RecyclerView.NO_POSITION) {
                        int index = getIndexOfValue(packageOffersSubCategoryList.get(position).getSubServiceId(), selectedSubSList);
                        selectedSubSList.get(index).put("ServiceId", packageOffersSubCategoryList.get(position).getServiceId());
                        Log.e("ServiceId",packageOffersSubCategoryList.get(position).getServiceId());
                        selectedSubSList.get(index).put("SubServiceId", packageOffersSubCategoryList.get(position).getSubServiceId());
                        Log.e("SubServiceId",packageOffersSubCategoryList.get(position).getSubServiceId());
                        selectedSubSList.get(index).put("SubServiceName", packageOffersSubCategoryList.get(position).getName());
                        Log.e("SubServiceName",packageOffersSubCategoryList.get(position).getName());
                        selectedSubSList.get(index).put("Value", packageOffersSubCategoryList.get(position).getValue());
                        Log.e("Value",packageOffersSubCategoryList.get(position).getValue());
                        selectedSubSList.get(index).put("Price", packageOffersSubCategoryList.get(position).getPrice());
                        Log.e("Price", packageOffersSubCategoryList.get(position).getPrice());
                    } else {
                        Map<String, String> map = new HashMap<>();
                        map.put("SubServiceId", packageOffersSubCategoryList.get(position).getSubServiceId());
                        map.put("ServiceId", packageOffersSubCategoryList.get(position).getServiceId());
                        map.put("SubServiceName", packageOffersSubCategoryList.get(position).getName());
                        map.put("Value", "0");
                        map.put("Price", "0");
                        selectedSubSList.add(map);
                        Log.e("map", String.valueOf(map));

                    }

                }

            }, 0);


            }

        });

        myViewHolder.imgMinu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (Integer.parseInt(myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]) > 0) {

                            if (packageOffersSubCategoryList.get(position).getCoupon_status().equalsIgnoreCase("1")) {
                                txtApplyCoupon.setBackground(getResources().getDrawable(R.drawable.bg_dark_green_rounded));
                            } else {
                                txtApplyCoupon.setBackground(getResources().getDrawable(R.drawable.bg_grey_rounded));
                            }

                            myViewHolder.txtSubPackageValue.setText(Integer.parseInt(myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]) - 1 + " " + packageOffersSubCategoryList.get(position).getUnit());
                            Log.e("minus",Integer.parseInt(myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]) -1 + " " + packageOffersSubCategoryList.get(position).getUnit() );

                            packageOffersSubCategoryList.get(position).setValue(String.valueOf(Integer.valueOf((myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]))));

                            count1 = Integer.parseInt(myViewHolder.txtSubPackageValue.getText().toString().split(" ")[0]);

                            intPrice = Integer.parseInt(packageOffersSubCategoryList.get(position).getOriginalPrice()) * Integer.parseInt(String.valueOf(count1));
                            myViewHolder.txtSubPackagePrice.setText("$ " + String.valueOf(intPrice));

                            packageOffersSubCategoryList.get(position).setPrice(myViewHolder.txtSubPackagePrice.getText().toString().split(" ")[1]);

                            newTotalPrice = newTotalPrice - Integer.valueOf(packageOffersSubCategoryList.get(position).getOriginalPrice());
                            inrValue = String.valueOf(newTotalPrice * 74);
                            txtPrice.setText("$ " + String.valueOf(newTotalPrice));
                            radio_dollar.setText("$ " + String.valueOf(newTotalPrice));
                            radio_inr.setText("₹ " + inrValue);

                            index = getIndexOfValue(packageOffersSubCategoryList.get(position).getSubServiceId(), selectedSubSList);
                           // index = RecyclerView.NO_POSITION;
                            Log.e("index", String.valueOf(index));
                            selectedSubSList.get(index).put("SubServiceId", packageOffersSubCategoryList.get(position).getSubServiceId());
                            Log.e("SubServiceIdpink",packageOffersSubCategoryList.get(position).getSubServiceId());
                            selectedSubSList.get(index).put("ServiceId", packageOffersSubCategoryList.get(position).getServiceId());
                            Log.e("ServiceId",packageOffersSubCategoryList.get(position).getServiceId());

                            selectedSubSList.get(index).put("SubServiceName", packageOffersSubCategoryList.get(position).getName());
                            selectedSubSList.get(index).put("Value", packageOffersSubCategoryList.get(position).getValue());
                            selectedSubSList.get(index).put("Price", packageOffersSubCategoryList.get(position).getPrice());
                        }

                    }
                },0);

            }
        });

        if (position == packageOffersSubCategoryList.size() - RecyclerView.NO_POSITION) {
            myViewHolder.txtSubPackageName.setBackground(context.getResources().getDrawable(R.drawable.bg_white_stroke_bottom_left_rounded));
            if (string.equalsIgnoreCase("custom")) {
                myViewHolder.txtSubPackagePrice.setBackground(context.getResources().getDrawable(R.drawable.bg_white_strike_bottom_right_rounded));

            } else {
                myViewHolder.llOffered.setBackground(context.getResources().getDrawable(R.drawable.bg_white_strike_bottom_right_rounded));
            }
        } else {
            myViewHolder.txtSubPackageName.setBackground(context.getResources().getDrawable(R.drawable.bg_white_stroke));
            myViewHolder.llOffered.setBackground(context.getResources().getDrawable(R.drawable.bg_white_stroke));
        }

        if (string.equalsIgnoreCase("custom")) {
            myViewHolder.txtSubPackageValue.setTextSize(10);
        } else {
            myViewHolder.txtSubPackageValue.setTextSize(13);
        }

    }

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

    public class MyViewHolder extends RecyclerView.ViewHolder {

        TextView txtSubPackageName, txtSubPackageValue, txtSubPackagePrice;
        ImageView imgMinu, imgPlus;
        LinearLayout llOffered;


        public MyViewHolder(@NonNull View itemView) {
            super(itemView);

            //setIsRecyclable(false);

            txtSubPackageName = itemView.findViewById(R.id.txtSubPackageName);
            txtSubPackageValue = itemView.findViewById(R.id.txtSubPackageValue);
            imgMinu = itemView.findViewById(R.id.imgMinu);
            imgPlus = itemView.findViewById(R.id.imgPlus);
            txtSubPackagePrice = itemView.findViewById(R.id.txtSubPackagePrice);
            llOffered = itemView.findViewById(R.id.llOffered);
        }
    }

}

}



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source