Автозаполнение TextView заполняется с сервера в Android

Мне нужно получить данные с сервера и заполнить автозаполнение TextView в android. Я использовал собственный фильтр для того же, где я извлекаю в onPerformFiltering() и отображаю в onPublishResults(). Но мне не нужно получать данные с сервера для каждого изменения символа. Мне нужно сделать это для определенной длины символов. Как я могу это сделать?


person O__O    schedule 22.06.2012    source источник
comment
Вы можете использовать JSON, HttpRequest. Проверьте мой ответ stackoverflow.com/questions/8653260/ В этом примере я использовал API предложений Википедии.   -  person Raghav    schedule 22.06.2012
comment
Большое вам спасибо, это работает как шарм :) Могу ли я использовать любой другой API вместо того, чтобы Википедия предлагала API таким же образом.   -  person O__O    schedule 23.06.2012
comment
Да, вы можете использовать любой другой API, вам нужно немного настроить его для работы :), так как структура JSON будет изменена с одного API на другой.   -  person Raghav    schedule 23.06.2012
comment
Я несколько раз получаю эту ошибку, и приложение принудительно закрывается: содержимое адаптера изменилось, но ListView не получил уведомление. Убедитесь, что содержимое вашего адаптера не изменяется из фонового потока, а только из потока пользовательского интерфейса.   -  person O__O    schedule 23.06.2012
comment
Ну, Android хочет, чтобы представления редактировались только потоком пользовательского интерфейса, фоновые потоки не могут напрямую обновлять представления, для этого вам нужно использовать runOnUiThread().   -  person Raghav    schedule 23.06.2012
comment
Я сделал это только таким образом. Даже тогда он иногда вылетает.. :(   -  person O__O    schedule 23.06.2012
comment
@androiddeveloper Здесь — ответ на очень похожий вопрос. Я рекомендую использовать функцию getFilter, с помощью которой вы экономите время на обработке асинхронных задач, которая запускает запрос в фоновом потоке, а затем обновляет список в потоке пользовательского интерфейса.   -  person Aldo Reyes    schedule 29.07.2012