J'essaie de vérifier la valeur de EditText dans mon AlertDialog.Builder afin que je puisse empêcher l'utilisateur d'entrer rien dans le EditText.Impossible de vérifier la valeur d'un EditText dans un AlertDialog.Builder
Pour une raison quelconque, lorsque j'utilise le code ci-dessous, il n'obtient jamais dans l'instruction if (mEditText.getText() == null || test == "")
, il exécute toujours l'instruction else à la place.
Des idées? Merci les amis.
@Override
protected Dialog onCreateDialog(int id) {
LayoutInflater factory = LayoutInflater.from(mContext);
final View textEntryView = factory.inflate(R.layout.file_save_dialog, null);
mEditText = (EditText) textEntryView.findViewById(R.id.file_name_edit);
final Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
return new AlertDialog.Builder(mContext)
.setIcon(android.R.drawable.ic_menu_save)
.setTitle(R.string.file_name_title)
.setView(textEntryView)
.setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String test = mEditText.getText().toString();
//This if never works...it always hits the else statement
if (mEditText.getText() == null || test == "") {
mEditText.startAnimation(shake);
}
else {
finish();
}
}
})
.setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
finish();
}
})
.create();
}
Merci. La vérification de la longueur a bien fonctionné, mais je suis perplexe quant à la raison pour laquelle mon code original n'a pas fonctionné. – user432209
Votre code original n'a pas fonctionné car dans Java, les chaînes sont comparées à égales(), pas == – ognian