長いリストからアイテムを選択するために使用するAutoCompleteTextView
があります。ユーザーは、リストから所定の項目のみを選択できる必要があります。彼らは自分のアイテムを入力することができないはずです。
リストからアイテムのみを送信することを確認する方法は、setOnItemClickListener
を使用してブールフラグをトリガーすることです。問題は、ブールフラグがtrueに設定された後でも、アイテムの選択されたテキストを編集できることです。これを検出して、ブールフラグを再度falseに設定する必要があります。どうすればこれを行うことができますか。 onKeyDown
を使用する提案を見ましたが、これを実装する方法がわかりません。
テキスト変更リスナーを追加できます。
autoCompleteTextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
TextWatcher
を実装します。これにより、誰かがテキストを変更したときに常にコールバックを受け取る3つのメソッドが提供されます。文字列が大きくなると、ユーザーはもう一度自分で入力しています。