16
私は、肯定とキャンセルボタンが付いた簡単なテキストフィールド警告ダイアログを使用しています。私は警告ダイアログを検証し、入力が無効であれば終了ボタンがAlertDialogを閉じるのを防ぎたい。AlertDialogが無効な入力で閉じないようにする方法はありますか?
カスタムダイアログを作成して、検証が失敗した場合にPositiveButton onClick()ハンドラがダイアログを閉じるのを防ぐ方法がありますか?
class CreateNewCategoryAlertDialog {
final EditText editText;
final AlertDialog alertDialog;
class PositiveButtonClickListener implements OnClickListener {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = editText.getText().toString();
if(name.equals("")) {
editText.requestFocus();
editText.setError("Please enter a name");
// Some code to stop AlertDialog from closing goes here...
} else {
doSomethingUsefulWithName();
}
}
}
AlertDialog buildAlertDialog(Context context) {
return new AlertDialog.Builder(context)
.setTitle(context.getString(R.string.enter_name))
.setMessage(context.getString(R.string.enter_name_msg))
.setView(editText)
.setPositiveButton(context.getString(R.string.done), new PositiveButtonClickListener())
.setNegativeButton(context.getString(R.string.cancel), null).create();
}
}
は申し訳ありませんが、私は、これは[この(未承認)質問](http://stackoverflow.com/q/4785571/403455)の複製である気づきました。私は重複としてそれを閉じるだろうが、私はより良い答えを探しています。答えが「いいえ」の場合は、それになります。 –
独自のカスタムダイアログを作成する方法は、[以前の質問](http://stackoverflow.com/questions/4016313/how-to-keep-an-alertdialog-open-after-button-onclick-撃たれた)。それが最も簡単な解決策になるようですが、それは私が過去にしなければならなかったことです。 – theisenp
あなたの質問を投票しています。 Disciplinedバッジが質問に当てはまるかどうかを見てみましょう:) – EboMike