Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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) {

    }
});

Ответ 2

Внедрите TextWatcher, который даст вам 3 метода, которые будут постоянно получать обратные вызовы, когда кто-то меняет текст. Если строка растет, ваш пользователь снова печатает.

Ответ 3

Используйте

AutoCompleteTextView#setOnItemSelectedListener() 

- работает как прелесть.