【发布时间】:2019-07-08 04:58:36
【问题描述】:
我已经创建了一个方法,并且在使用此对话框之前我只调用了一次该方法:
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 对象?
【问题讨论】:
-
我认为这个错误来自
RecyclerView。 -
我想这会对你有所帮助link
-
当我在编辑菜单项@AbhayKoradiya 上单击两次时,我在此部分出现错误
alertDialog = alertBuilder.setMessage("Edit") -
你需要先解散。检查我的答案。
标签: android android-alertdialog