ありがとう:
私はこのフォーカス変更リスナー
actName.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
ArrayList<String> results =
((UsersAutoCompleteAdapter) actName.getAdapter()).getAllItems();
if (results.size() == 0 ||
results.indexOf(actName.getText().toString()) == -1) {
actName.setError("Invalid username.");
};
}
}
});
提案を含むArrayList
を返すgetAllItems()
方法を追加しました。
だから私はいくつかのユーザー名を入力したときに、その後、別のフィールドに移動し、このリスナーがトリガーと提案リストが空でない場合は入力したユーザー名がそのリストにあるかどうかはチェックされています。条件が満たされない場合、エラーが表示されます。
また、私はOK
ボタンのクリックで同じチェックを持っている:AutoComplete
ビューはまだフォーカスされている場合
private boolean checkErrors() {
ArrayList<String> usernameResults =
((UsersAutoCompleteAdapter) actName.getAdapter()).getAllItems();
if (actName.getText().toString().isEmpty()) {
actName.setError("Please enter a username.");
return true;
} else if (usernameResults.size() == 0 || usernameResults.indexOf(actName.getText().toString()) == -1) {
actName.setError("Invalid username.");
return true;
}
return false;
}
ので、エラーチェックが再度行われます。
利用スピナー代わりに...そこにユーザ名のLOTがあり、クライアントはオートコンプリートのTextViewを持って望んでいるので、私はスピナーを使用することはできません@Selvin – Selvin
。 – nikmin
検索オプション付きのリストビューはどうですか? –