У меня есть AutoCompleteTextView (et_item_name) с источником данных, поступающим из конечной точки. Вот код для установки исходного адаптера и его перезагрузки после получения данных от конечной точки.
productSuggestions = ArrayList()
mSearchSuggestionsAdapter = ArrayAdapter(context, android.R.layout.simple_list_item_1, productSuggestions)
et_item_name.setAdapter(mSearchSuggestionsAdapter)
et_item_name.threshold = 1
et_item_name.doAfterTextChanged {
if (it.toString().trim().length <= 1) {
productSuggestions.clear()
mSearchSuggestionsAdapter.notifyDataSetChanged()
} else {
mainModel.getProductsAutoCompleteResults(ProductAutoCompleteRequest(10, it.toString(), "SOME_ID")) //this is an endpoint call, which returns fetched results
}
}
//Observer
mainModel.autoCompleteBYOSResult.observe(viewLifecycleOwner, Observer { //autoCompleteBYOSResult is MutableLiveData
productSuggestions.clear()
var temp: ArrayList<String> = ArrayList()
it.success?.forEach { temp.add(it.name) }
productSuggestions.addAll(temp) //this array has all correct values
mSearchSuggestionsAdapter.notifyDataSetChanged() //after this call, this adapter doesn't update, it still shows 0 mObjects when debugging
})
mSearchSuggestionsAdapter.notifyDataSetChanged () не обновляет адаптер. Он по-прежнему показывает 0 mObjects в режиме отладки. Раскрывающийся список ниже AutoCompleteTextView не отображается.
Как правильно динамически обновлять адаптер для AutoCompleteTextView?