Прежде всего, не выполняйте работу, связанную с базой данных, на адаптере, я предоставлю вам решение, в котором вы можете выполнить работу, связанную с базой данных, над действием над фрагментом. Сначала создайте один интерфейс в вашем адаптере,
interface WorkCompleteInteraction {
void onWorkComplete(int position, OrderBook orderbook);
}
получите ваш интерфейс в конструкторе,
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private WorkCompleteInteraction interaction;
private Context mContext;
public MyAdapter(WorkCompleteInteraction interaction, Context mContext) {
this.interaction = interaction;
this.mContext = mContext;
}
Отправьте обратный вызов вашей деятельности / фрагменту,
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
final orderbook orderbook = orderbookList.get(position);
if (interaction != null) {
interaction.onWorkComplete(position, orderbook);
}
}
Инициализируйте свой адаптер в упражнении / фрагменте,
MyAdapter adapter = new MyAdapter(this,this);
Реализуйте свой интерфейс в своем действии,
public class TestActivity extends AppCompatActivity implements MyAdapter.WorkCompleteInteraction {
Наконец переопределите свой метод,
@Override
public void onWorkComplete(int position, OrderBook orderbook) {
//do your database related work here
}