'SQLite database not updating after deleting rows

I am new, and I am making an app that displays data in a cardView within a recyclerView in android studio. I am trying to be able to delete the data that is displayed on the cardView. The cardView and data gets deleted as it should, but once I go back to the activity holding the cardView and recyclerView, it's all still there. Does anyone know why this is happening? I'll post my code below

ReminderDBHelper:

package com.example.lasttry;
 
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
 
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
 
import java.util.ArrayList;
 
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {
 
    private Context context;
    private ArrayList reminder_id, reminder_title, reminder_location, reminder_medication;
    reminderDBHelper mydb;
    Button reminderDelete;
 
 
 
    CustomAdapter(Context context,
                  ArrayList reminder_id,
                  ArrayList reminder_title,
                  ArrayList reminder_location,
                  ArrayList reminder_medication) {
        this.context = context;
        this.reminder_id = reminder_id;
        this.reminder_title = reminder_title;
        this.reminder_location = reminder_location;
        this.reminder_medication = reminder_medication;
 
 
    }
 
 
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.my_row, parent, false);
        return new MyViewHolder(view);
 
 
 
    }
 
    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
 
        holder.reminder_id.setText(String.valueOf(reminder_id.get(position)));
        holder.reminder_title.setText(String.valueOf(reminder_title.get(position)));
        holder.reminder_location.setText(String.valueOf(reminder_location.get(position)));
        holder.reminder_medication.setText(String.valueOf(reminder_medication.get(position)));
        holder.reminderDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mydb = new reminderDBHelper(context);
 
                String id = String.valueOf(reminder_id);
                mydb.deleteData(id);
                reminder_id.remove(holder.getAdapterPosition());
                notifyItemRemoved(holder.getLayoutPosition());
            }
        });
        holder.mainLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, UpdateActivity.class);
                intent.putExtra("id", String.valueOf(reminder_id.get(holder.getAdapterPosition())));
                intent.putExtra("title", String.valueOf(reminder_title.get(holder.getAdapterPosition())));
                intent.putExtra("location", String.valueOf(reminder_location.get(holder.getAdapterPosition())));
                intent.putExtra("medication", String.valueOf(reminder_medication.get(holder.getAdapterPosition())));
                context.startActivity(intent);
 
            }
        });
 
    }
 
    @Override
    public int getItemCount() {
        return reminder_id.size();
    }
 
    public class MyViewHolder extends RecyclerView.ViewHolder {
        TextView reminder_id, reminder_title, reminder_location, reminder_medication;
        Button reminderDelete;
        LinearLayout mainLayout;
 
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            reminderDelete = itemView.findViewById(R.id.reminder_delete);
            reminder_id = itemView.findViewById(R.id.reminder_id);
            reminder_title = itemView.findViewById(R.id.reminder_title);
            reminder_location = itemView.findViewById(R.id.reminder_location);
            reminder_medication = itemView.findViewById(R.id.reminder_medication);
            mainLayout = itemView.findViewById(R.id.mainLayout);
        }
 
    }
 
}

CustomAdapter:

package com.example.lasttry;
 
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
 
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
 
import java.util.ArrayList;
 
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {
 
    private Context context;
    private ArrayList reminder_id, reminder_title, reminder_location, reminder_medication;
    reminderDBHelper mydb;
    Button reminderDelete;
 
 
 
    CustomAdapter(Context context,
                  ArrayList reminder_id,
                  ArrayList reminder_title,
                  ArrayList reminder_location,
                  ArrayList reminder_medication) {
        this.context = context;
        this.reminder_id = reminder_id;
        this.reminder_title = reminder_title;
        this.reminder_location = reminder_location;
        this.reminder_medication = reminder_medication;
 
 
    }
 
 
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.my_row, parent, false);
        return new MyViewHolder(view);
 
 
 
    }
 
    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
 
        holder.reminder_id.setText(String.valueOf(reminder_id.get(position)));
        holder.reminder_title.setText(String.valueOf(reminder_title.get(position)));
        holder.reminder_location.setText(String.valueOf(reminder_location.get(position)));
        holder.reminder_medication.setText(String.valueOf(reminder_medication.get(position)));
        holder.reminderDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mydb = new reminderDBHelper(context);
 
                String id = String.valueOf(reminder_id);
                mydb.deleteData(id);
                reminder_id.remove(holder.getAdapterPosition());
                notifyItemRemoved(holder.getLayoutPosition());
            }
        });
        holder.mainLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, UpdateActivity.class);
                intent.putExtra("id", String.valueOf(reminder_id.get(holder.getAdapterPosition())));
                intent.putExtra("title", String.valueOf(reminder_title.get(holder.getAdapterPosition())));
                intent.putExtra("location", String.valueOf(reminder_location.get(holder.getAdapterPosition())));
                intent.putExtra("medication", String.valueOf(reminder_medication.get(holder.getAdapterPosition())));
                context.startActivity(intent);
 
            }
        });
 
    }
 
    @Override
    public int getItemCount() {
        return reminder_id.size();
    }
 
    public class MyViewHolder extends RecyclerView.ViewHolder {
        TextView reminder_id, reminder_title, reminder_location, reminder_medication;
        Button reminderDelete;
        LinearLayout mainLayout;
 
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            reminderDelete = itemView.findViewById(R.id.reminder_delete);
            reminder_id = itemView.findViewById(R.id.reminder_id);
            reminder_title = itemView.findViewById(R.id.reminder_title);
            reminder_location = itemView.findViewById(R.id.reminder_location);
            reminder_medication = itemView.findViewById(R.id.reminder_medication);
            mainLayout = itemView.findViewById(R.id.mainLayout);
        }
 
    }
 
}

I have searched stackOverflow and reddit, but nothing seems to work. I have tried making the array array list instead.



Sources

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

Source: Stack Overflow

Solution Source