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

Я использую 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 парень использовал арабский язык и столкнулся с таким же поведением. В моем случае это немного отличается из-за реализации фильтра.


person Juvi    schedule 21.05.2017    source источник


Ответы (1)


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

person Zeero0    schedule 21.05.2017
comment
А решение есть? - person Juvi; 21.05.2017
comment
Для меня сработало изменение match_parent на wrap_content - person Zeero0; 21.05.2017
comment
Удивительно, это только что решило это. Изменение ширины TextView с match_parent на wrap_it сделало это. Мне интересно, каково объяснение, это похоже на ошибку. Спасибо! - person Juvi; 21.05.2017
comment
Я добавлю возможность добавить содержащий макет, такой как RelativeLayout, и установить его ширину в соответствии с родительским (так что вся строка будет кликабельной, а не только текст). Не забудьте переопределить метод getView при этом. - person Juvi; 21.05.2017