私は編集テキストで警告ダイアログを表示しています。ユーザーは何かを入力する必要があり、そうでない場合、システムはこの入力が必要であることを彼に警告する必要があります。入力が空であればEditTextの警告ダイアログが閉じます
これはアルターダイアログのコードです:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Razlog storniranja?");
// Set up the input
final EditText input = new EditText(this);
// Specify the type of input expected; this, for example, sets the input as a password, and will mask the text
input.setInputType(InputType.TYPE_CLASS_TEXT);
input.setSingleLine(false);
input.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("Spremi", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("Otkaži", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (m_Text.length()==0)
{
input.setHint("Morate upisati razlog storniranja kartice (naloga)!");
input.setError("Upišite razlog storniranja!");
}
}
});
builder.show();
しかし、正のボタン、入力時にユーザーのクリックは、ダイアログが閉じられた空のとき。ダイアログを閉じるのを避けるためにコードに何かがありませんか?私は解決策を見つけたと思う
EDIT
。最後の行builder.show();
を削除する必要があり、その代わりに、コードのこの作品は、追加する必要があります。
builder.setView(input);
final AlertDialog alertDialog = builder.create();
alertDialog.show();
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Boolean wantToCloseDialog = (input.getText().toString().trim().isEmpty());
// if EditText is empty disable closing on possitive button
if (!wantToCloseDialog) {
input.setHint("Morate upisati razlog storniranja kartice (naloga)!");
input.setError("Upišite razlog storniranja!");
alertDialog.dismiss();
}
}
});
私は、これは他人を助けることを願っています。
可能な複製を助けるhttps://stackoverflow.com/questions/11363209/ alertdialog-with-positive-button-and-validating-custom-edittext) –