Я использую AutoCompleteTextView, чтобы упростить поиск для пользователя.
Поиск возможен на любом языке, но для этого примера я буду использовать английский и иврит (язык с письмом справа налево).
Пока я использую только один язык (английский или иврит), все работает нормально, но когда всплывающее окно с предложением содержит значения обоих языков, это становится странным.
Вы можете видеть, что между строками "nicky jam" и "zeamoon" есть пустая строка. Я отлаживал ArrayList, и там есть значение на иврите, которое по какой-то причине не заполнено.
Это становится еще более странным, когда вы видите вверху строку на иврите, которая заполняется просто отлично.
Таким образом, нет вывода «Мой адаптер не заполняет данные, содержащие иврит», он просто случайным образом пропускает значения, даже если они существуют.
Функция PublisResult:
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results != null && results.count > 0) {
notifyDataSetChanged();
if (!instantAutoComplete.isPopupShowing())
instantAutoComplete.showDropDown();
}else {
notifyDataSetInvalidated();
}
}
Единственная похожая тема, которую я нашел, это This парень использовал арабский язык и столкнулся с таким же поведением. В моем случае это немного отличается из-за реализации фильтра.