I have need for AutoCompliteTextView in PreferenceActivity so I extended DialogPreference. My auto-complite is expecting from (helping) user to enter country name. I’m fine if user press Cancel or enters no values, however I would like to ensure that proper name is entered before dialog is closed. I tried to override onClick as
@Override
public void onClick(DialogInterface dialog, int which) {
if (!validator.isValid(textView.toString())) {
onDialogClosed(false);
} else {
//do something here
super.onClick(dialog, which);
}
}
also with onDialogClosed
@Override
protected void onDialogClosed(boolean positiveResult) {
if (validator.isValid(textView.toString())) {
//do something here
super.onDialogClosed(positiveResult);
}
}
Once a user clicks on a dialog button, the dialog is closing, and there is nothing you can do to stop it.
The only thing I can think of that you could try is to call
getDialog()on theDialogPreference, cast that toAlertDialog, then callgetButton()to retrieve your positive button, and disable it, enabling it later when the input is valid.