我将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
}
}
}
有什么建议吗?
答案 0 :(得分:2)
我认为setNegative / setPositive按钮用于在回调返回后关闭对话框。您可能会更好地在视图中包含您自己的按钮并自行解除对话