我有一个inputDialog
,允许一些文字输入。单击“保存”后,inputDialog
将检查输入的文本是否已可用(以防止双重输入)。如果是这种情况,则会创建一个新的AlertDialog
,只需说明"您输入的值已经存在",只有"确定"按钮以关闭此AlertDialog
。这一切都有效。
我希望在取消inputDialog
之后,再次使用用户在AlertDialog
字段之前输入的值重新弹出editText
。
我不希望在editText
字段中获取这些值时出现任何问题(在点击保存时将它们存储在变量中,如果发生双重输入错误,请在{{1}上设置这些变量如果我以愚蠢的方式做这件事,请告诉我。)
但是我遇到第一个(editText
)对话框回来时遇到了问题。您在下面看到的代码是我的inputDialog
片段的代码(代码是简化的,所以如果某些内容似乎缺失,可能就是。请告诉我,所以我可以将其添加回来。)
所以,重复一遍:如何在解雇第二个对话框后返回上一个对话框?
StuffManagerInputDialogFragment.java:
inputDialog
答案 0 :(得分:1)
更好的解决方案是为输入布局创建一个对话框片段,如果文本验证失败,该对话框片段将在OK上显示AlertDialog。输入对话框片段在这种情况下不会被忽略,它将保留在后台,因此当您关闭警告对话框以告诉用户输入无效时,您将返回到输入对话框。
为了防止对话框片段在OK上被忽略,你将覆盖onStart并获得对OK按钮的引用并在那里设置监听器,如下所示:
@Override
public void onStart() {
super.onStart();
AlertDialog alertDialog = (AlertDialog) getDialog();
if (alertDialog != null) {
mOKButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
mOkButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (field OK) {
// save data
dismiss();
} else {
// show error dialog
}
}
});
}
}