ListView пропускает случайные значения при использовании 2 разных языков String в адаптере

96
14

Я использую AutoCompleteTextView, чтобы сделать поиск более удобным для пользователя.

Поиск возможен на любом языке, но для этого примера я буду использовать английский и иврит (язык RTL).

Пока я использую только один язык (английский или иврит), он работает нормально, но когда всплывающее окно подсказки имеет значения обоих языков, оно становится странным.

enter image description here

Вы можете видеть, что между "nicky jam" и "zeamoon" Strings theres пустая строка. Я отлаживал ArrayList и там значение на иврите, которое по какой-то причине не заселено.

Это становится еще более странным, когда вы можете видеть вверху там еврейскую строку, которая заполнена просто отлично.

Итак, нет вывода "Мой адаптер не заполняет какие-либо данные, содержащие иврит", он просто пропускает значения случайным образом, даже если они существуют.

Функция PublisResult:

@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results != null && results.count > 0) {
notifyDataSetChanged();
if (!instantAutoComplete.isPopupShowing())
instantAutoComplete.showDropDown();
}else {
notifyDataSetInvalidated();
}

}

Единственная подобная тема, которую я нахожу, - это, этот парень использовал арабский язык и сталкивался с тем же поведением. В моем случае это бит отличается от реализации фильтра.

спросил(а) 2017-05-21T13:40:00+03:00 3 года, 1 месяц назад
1
Решение
65

Я столкнулся с такой же проблемой. В моем случае проблема была в XML файле. Я использовал Urdu как RTL, который не показывался в макете.

ответил(а) 2017-05-21T13:55:00+03:00 3 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема