относительно операций обновления и удаления данных в базе данных SQLite из адаптера recyclerview - PullRequest
0 голосов
/ 03 августа 2020

у меня есть 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;
        }
    }


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