我该如何从另一个对话框返回上一个对话框?

时间:2016-03-01 20:31:42

标签: java android

我有一个inputDialog,允许一些文字输入。单击“保存”后,inputDialog将检查输入的文本是否已可用(以防止双重输入)。如果是这种情况,则会创建一个新的AlertDialog,只需说明"您输入的值已经存在",只有"确定"按钮以关闭此AlertDialog。这一切都有效。

我希望在取消inputDialog之后,再次使用用户在AlertDialog字段之前输入的值重新弹出editText

我不希望在editText字段中获取这些值时出现任何问题(在点击保存时将它们存储在变量中,如果发生双重输入错误,请在{{1}上设置这些变量如果我以愚蠢的方式做这件事,请告诉我。)

但是我遇到第一个(editText)对话框回来时遇到了问题。您在下面看到的代码是我的inputDialog片段的代码(代码是简化的,所以如果某些内容似乎缺失,可能就是。请告诉我,所以我可以将其添加回来。)

所以,重复一遍:如何在解雇第二个对话框后返回上一个对话框?

StuffManagerInputDialogFragment.java:

inputDialog

1 个答案:

答案 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
                }
            }
        });
    }
}