Я создал в методе, и я вызываю этот метод только один раз, прежде чем использовать это диалоговое окно:
private void makeAlertDialogBuilder() {
binding = DataBindingUtil.inflate(LayoutInflater.from(getContext()),
R.layout.revisited_dialog, null, false);
alertBuilder = new AlertDialog.Builder(getContext()).setView(binding.getRoot())
.setView(binding.getRoot());
binding.btnCancel.setOnClickListener(v -> alertDialog.dismiss());
}
У меня есть меню на панели инструментов, поэтому я хочу, чтобы я нажал на Добавить пункт меню, это диалоговое окнооткрывается и отображается с новым сообщением, и когда я щелкаю по пункту меню редактирования, появляется диалоговое окно с новым сообщением:
toolbar.setOnMenuItemClickListener(item -> {
int id = item.getItemId();
if (id == R.id.add_row) {
alertDialog = alertBuilder
.setMessage("Add")
.setCancelable(false)
.show();
exGridAdapter = new RevisitGridAdapter(gridAdapter, baseClass, Action.ADD);
initRecyclerView(exGridAdapter);
return true;
} else if (id == R.id.edit_row) {
if (selectedItem != null) {
alertDialog = alertBuilder
.setMessage("Edit")
.setCancelable(false)
.show();
exGridAdapter = new RevisitGridAdapter(gridAdapter, baseClass, Action.EDIT, selectedItem);
initRecyclerView(exGridAdapter);
}
для первого щелчка, отображается диалоговое окно, но когда оно было отклонено и снова нажано, я получил ошибку ANR:
У указанного ребенка уже есть родитель.Сначала вы должны вызвать removeView () у родителя ребенка.
Я создал один объект из alertBuilder
и хочу его использовать?Это возможно, или я должен воссоздать новый объект alertBuilder?