Поле с автодополнением
Пишу приложение и необходимо поле ввода, которое способно показывать варианты исходя из уже введенных букв слова. Условно если мне нужен "Рис", то чтобы когда я вводил "Р" у меня появлялись варианты из моей бд начинающиеся на "Р" или если "Ри",то начинающиеся с "Ри" и тд. Я думаю, что вроде как нужно отправлять динамически изменяющийся запрос каждый раз после введенной буквы, но это не очень экономично в плане ресурсов(особенно если бд где-то на сервере), да и думаю, что есть какие-то другие способы. Буду рад любой помощи и подсказке.
Ответы (2 шт):
Ну смотрите, вам в любом случае придется каждый раз дергать запрос если вы хотите получить информацию с сервера.
Единственное что вы можете сделать это либо к примеру отправлять запрос только допустим на каждую 2ую введенную букву, либо сделать дебаунсер. Дебаунсер будет отправлять запрос только спустя какое-то время после того как пользователь прекратил что-то вводить. (Например пользователь быстро набирал текст и если он в течении 1 секунды ничего не вводит, только тогда отправляется запрос). А можно и объеденить эти два подхода
Для реализации этого есть много подходов. Один из самых простых это использовать RX Java.
Решил вопрос заменой обычного EditText на AutoCompleteTextView. Из коробки с помощью адаптера можно предложить варианты дополнения, заранее полученные из базы данных.