AutoCompleteTextView обнаруживает, когда выбранная запись из списка редактируется пользователем

У меня есть AutoCompleteTextView я использую для выбора элемента из длинного списка. Пользователь должен только выбрать из списка заданный элемент. Они не должны входить в свой предмет.

То, как я проверяю, чтобы убедиться, что они представляют только элемент из списка, – это использовать setOnItemClickListener для запуска булевского флага. Проблема в том, что после того, как логический флаг установлен в true, они все равно могут редактировать выделенный текст элемента. Мне нужно это обнаружить и снова установить флаг boolean. Как мне это сделать. Я видел предложение использовать onKeyDown , но я не уверен, как это реализовать.

Solutions Collecting From Web of "AutoCompleteTextView обнаруживает, когда выбранная запись из списка редактируется пользователем"

Вы можете добавить прослушанный текст:

 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 метода, которые будут постоянно получать обратные вызовы, когда кто-то меняет текст. Если строка растет, ваш пользователь снова печатает.

использование

 AutoCompleteTextView#setOnItemSelectedListener() 

– работает как шарм.