PreferenceActivity에서 AutoCompliteTextView가 필요하므로 DialogPreference를 확장했습니다. 내 자동 완성 기능은 사용자가 국가 이름을 입력하는 것을 (돕는) 기대하고 있습니다. 사용자가 Cancel을 누르거나 값을 입력하지 않아도 괜찮습니다. 그러나 대화 상자가 닫히기 전에 적절한 이름이 입력되었는지 확인하고 싶습니다. 나는 사용자가 대화 상자를 닫고, 대화 버튼을 클릭하면 onDialogClosed조건을 충족시키지 못하면 DialogPreference onClick을 닫지 마십시오
으로도
@Override
public void onClick(DialogInterface dialog, int which) {
if (!validator.isValid(textView.toString())) {
onDialogClosed(false);
} else {
//do something here
super.onClick(dialog, which);
}
}
로
@Override
protected void onDialogClosed(boolean positiveResult) {
if (validator.isValid(textView.toString())) {
//do something here
super.onDialogClosed(positiveResult);
}
}
어디서이 작업을 수행해야하는지 알지 못합니다. onCreateDialogView와 onPrepareDialogBuilder가 너무 일찍 대화 상자가 빌드되므로 널 클릭이 너무 늦었습니다. 내가 놓친 게 있니? –
@peter_budo : 그 밖의 것이 없다면 두 번째 단락의 처음 11 개 단어가 누락되었습니다. "시도 할 수있는 유일한 방법은 내가 생각할 수있는 것"입니다. 나는 DialogPreference에 검증을 시도한 적이 없다. 그러나,'onBindDialogView()와'showDialog()'는 시도 할 가치가있는 후보자처럼 보일 것입니다. – CommonsWare
영국이나 미국과 같은 국가의 ListView 나 Spinner 사용자가 나에게 싫어할 것이라고 믿기 때문에, 필자는이 점을 보았다. 230 개 이상의 긴 국가 목록. –