@AlexandrMa

И-за чего ошибка у AlertDialog в RecyclerView?

public class NoteAdapter extends RecyclerView.Adapter<NoteAdapter.NoteViewHolder>{

  Context context;
  private final List<Note> items;


  NoteAdapter(Context context, List<Note> items) {
    this.context = context;
    this.items = items;
  }


  public void onBindViewHolder(NoteViewHolder holder, int position) {
    Note currentItem = items.get(position);
    holder.noteText.setText(currentItem.getText());
    holder.itemView.setOnClickListener(view -> {
      showAlertDialog();
    });
  }


  private void showAlertDialog() {

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
    alertDialogBuilder.setTitle("Title");
    alertDialogBuilder.setMessage("Message");
    alertDialogBuilder.setPositiveButton("CANCEL", (dialog, which) -> dialog.cancel());
    alertDialogBuilder.setNegativeButton("YES", (dialog, which) -> {
      //
    });
    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();
  }

}

При клике на элементе приложение закрывается. Сюда:
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

Вместо context передавал уже всё, что можно и getApplicationContext() и view.getContent() и MainActivity.this (не даёт, ошибка)
Из-за чего так?
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Адаптер вообще не должен показывать диалоги. У него одна задача - адаптировать данные под ui.
Можно прокинуть в адаптер колбэк, по которому показывать диалог в активити или во фрагменте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы