у меня есть recyclerview, который я заполняю данными, взятыми из базы данных sqlite
в адаптере моего ресайклера Я установил всплывающее меню, которое появляется при длительном нажатии на элемент и позволяет пользователю удалить или отредактируйте данные элемента, по которому был сделан щелчок. Мой вопрос в том, как мне обрабатывать изменение данных в базе данных? должен ли я объявить новый экземпляр базы данных sqlite и выполнить необходимые инструкции sql внутри самого кода адаптера ресайклера или есть лучший способ?
то, о чем я думаю, выглядит примерно так:
//inside the recycler adapter
//declare a public instance of sqlite database inside the adapter class itself
class MyViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener{
TextView title,description;
ImageView image;
public MyViewHolder(@NonNull View v) {
super(v);
title=v.findViewById(R.id.recylcer_highlight_title);
description=v.findViewById(R.id.recylcer_highlight_description);
image=v.findViewById(R.id.recylcer_highlight_image);
v.setOnLongClickListener(this);
}
@Override
public boolean onLongClick(View v) {
PopupMenu pop=new PopupMenu(context,v);
pop.inflate(R.menu.highlights_popup_menu);
pop.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if(item.getItemId()==R.id.delete){
//execute deletion sql statement here and update the list of items
}
else if(item.getItemId()==R.id.edit){
//execute updating sql statement here and update the list of items
}
return false;
}
});
pop.show();
return false;
}
}