在我的应用程序中,我使用的AlertDialog
是自定义视图。这个视图包含几个EditText
s 和一些其他的东西。有一些附加到EditText
s 的侦听器可以执行所需的任何功能。
在对话框的按钮单击上,我正在对输入到 s 中的数据执行一些验证,如果数据无效,则EditText
显示另一个。AlertDialog
一旦该(第二个)对话框关闭,我想保留在主对话框上(使用自定义视图),但由于某种原因,该对话框在我的第二个对话框显示之前关闭。如何在第二个对话框下保持原始(自定义视图)对话框仍然打开?
这是我的(简化的)代码:
final EntryPanel panel = new EntryPanel(OrderActivity.this);
AlertDialog dlg = new AlertDialog.Builder(OrderActivity.this)
.setCancelable(true)
.setView(panel)
.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final int id = pePanel.getProductId();
if(!isValidProduct(id)) {
new AlertDialog.Builder(OrderActivity.this)
.setMessage(R.string.error_unknown_product)
.setCancelable(true)
.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dlg2, int which) {
dlg2.cancel();
}
})
.show();
}
else {
processProductEntry(id);
dialog.dismiss();
}
}
})
.setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();