保持DialogFragment打开,直到用户输入有效Android?

时间:2012-10-29 14:32:30

标签: android android-dialogfragment

我将DialogFragment子类化为用户显示输入字段。

如果用户没有提供任何输入,我想保持对话框打开并在输入字段上显示错误。当用户按下正“保存”按钮时,无论输入字段是否为空,对话框都会自动关闭。

如何覆盖此默认行为?

代码段(完整代码很长,但你明白了):

public class SurveySingleQuestionDialog extends DialogFragment implements DialogInterface.OnClickListener {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    return (builder.setTitle(mArgs.getString("question_body"))
            .setView(layout)
            .setPositiveButton(R.string.save, this)
            .setNegativeButton(android.R.string.cancel, null)
            .setCancelable(false)
            .show());

}

@Override
public void onClick(DialogInterface dialog, int which) {

if(validInputs()){

//dismiss dialog and save inputs

}
else{

//show error on input field

}

}

}

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我认为setNegative / setPositive按钮用于在回调返回后关闭对话框。您可能会更好地在视图中包含您自己的按钮并自行解除对话