4

我将 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

}

}

}

有什么建议吗?

4

1 回答 1

2

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

于 2012-10-29T14:51:53.747 回答