Обновите одно целое число в SQLite из списка RecyclerView. - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть одно мероприятие под названием корзина (Корзина). Я использую SQLite для хранения элементов и отображаю данные в RecyclerView. Моя проблема в том, когда мне нужно увеличить или уменьшить количество, потому что мой код принимает значение по умолчанию (1), а увеличение равно 2 за все время и уменьшается с 0. Мне нужно обновить базу данных. Я это знаю, но я действительно не понимаю как. Я вижу 2 варианта с Sqlexe c и ContentValues, но я действительно не знаю, как это реализовать. Если кто-то может мне помочь, я буду очень признателен. Я поместил свой класс адаптера здесь.

public class cartItemRecyclerView extends RecyclerView.Adapter<cartItemRecyclerView.ViewHolder>{

    ArrayList<items> itemsList;
    Context context;

    interface IImageButtonListener{
        void onImageButtonClick(View view,int pos,boolean isDecrease);
    }

    public cartItemRecyclerView(Context context, ArrayList<items> itemsList){
        this.context = context;
        this.itemsList = itemsList;
    }

    public cartItemRecyclerView(ArrayList<items> item) {
        this.itemsList = item;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        Context context = parent.getContext();
        LayoutInflater inflater = LayoutInflater.from(context);

        // Inflate the custom layout
        View contactView = inflater.inflate(R.layout.list_cart_item_view,parent,false);

        // Return a new holder instance
        ViewHolder viewHolder = new ViewHolder(contactView);

        return viewHolder;
    }

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

        // Get the data model based on position
        items itm = itemsList.get(position);

        // Set item views based on your view and data model

        holder.nameC.setText(itm.getlName());
        holder.iconC.setImageResource(itm.getlImageId());
        holder.priceC.setText(itm.getlPrice()+ "");
        holder.quantityC.setText(itm.getQuantity()+"");

        holder.setListener(new IImageButtonListener() {
            @Override
            public void onImageButtonClick(View view, int pos, boolean isDecrease) {
                if(isDecrease){
                    int i = itemsList.get(pos).getQuantity();
                    i++;
                    // Update in database
                    holder.quantityC.setText(i+"");

                }
                else {
                    int i = itemsList.get(pos).getQuantity();
                    i--;
                    // Update in database
                    holder.quantityC.setText(i+"");
                }

            }
        });

    }

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

    public class ViewHolder extends RecyclerView.ViewHolder{
        public TextView nameC, priceC, quantityC;
        public ImageView increaseC, decreaseC, iconC;
        IImageButtonListener listener;

        public void setListener(IImageButtonListener listener){
            this.listener = listener;
        }

        public ViewHolder(View itemView){
            super(itemView);

            nameC = itemView.findViewById(R.id.name_item_cart);
            priceC = itemView.findViewById(R.id.price_item_cart);
            quantityC = itemView.findViewById(R.id.textview_quantity_items);
            increaseC = itemView.findViewById(R.id.image_increase_quantity);
            decreaseC = itemView.findViewById(R.id.image_decrease_quantity);
            iconC = itemView.findViewById(R.id.icon_item_cart);

            // Event
            increaseC.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    listener.onImageButtonClick(v, getAdapterPosition(),true);
                }
            });

            decreaseC.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    listener.onImageButtonClick(v, getAdapterPosition(),false);
                }
            });
        }
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...