Я создал приложение, используя базу данных SQL lite, которая добавляет в базу некоторые продукты, и есть опции для обновления, добавления, просмотра и удаления элементов. Все методы работают хорошо, но только до тех пор, пока я не закрою приложение. Я могу удалить элементы, но при перезапуске приложения. они не удалены.
// УДАЛИТЬ метод в классе обработчика базы данных
public void deleteGrocery(int id){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(Constants.TABLE_NAME, Constants.KEY_ID + "=?", new String[]{String.valueOf(id)});
db.close();
}
Адаптер
public class rvAdapter {
List<Grocery> groceries;
public rvAdapter(Context context, List<Grocery> groceries) {
this.context = context;
this.groceries = groceries;
}
// on clicking delete button
public void onClick(View view) {
switch (view.getId()){
case R.id.deleteButton:
Grocery g2 = groceries.get(getAdapterPosition());
deleteItem(g2.getId());
break;
}
}
// Delete Item Method
public void deleteItem(final int id){
builder = new AlertDialog.Builder(context);
inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.confirmation_dialog, null);
Button dontDelete = view.findViewById(R.id.noButton);
Button deleteItem = view.findViewById(R.id.YesButton);
builder.setView(view);
dialog = builder.create();
dialog.show();
dontDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
deleteItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// delete item from db
DatabaseHandler db = new DatabaseHandler(context);
db.deleteGrocery(id);
groceries.remove(getAdapterPosition());
notifyItemRemoved(getAdapterPosition());
dialog.dismiss();
}
});
}
}