Базовому адаптеру Android не удается загрузить последнее значение массива

#android

#Android

Вопрос:

все

Недавно я использовал ADT для разработки программы Android 2.2. Программа корректно запускается в симуляторе, но при запуске на реальном компьютере возникает странная проблема.

Я использую BaseAdapter для создания MenuAdapter, он загрузит пользовательский класс с именем ViewHolder . Пользовательский класс и MenuAdapter аналогичны любому образцу BaseAdapter: ViewHolder имеют только две переменные text и image, без каких-либо кодов. MenuAdapter загружает макет меню, содержащий текстовое представление. Он назначит текстовую переменную в TextView и повторно загрузит ее как диалоговое окно предупреждения.

Затем я создаю массив, содержащий следующую переменную:

 public String[] menuOptions={"Browser", "Google Map", "Camera", "Gallery", "Media Player", "Cancel", "Exit"};
  

После этого я использую AlertDialog.Builder().setAdapter() для создания объекта BaseAdapter и загрузки массива. Диалоговое окно предупреждения переносит набор данных. Но он выводит это:

Браузер, Карта Google, Камера, Галерея, медиаплеер, Отмена, браузер

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

Браузер, Карта Google, Камера, Галерея, медиаплеер, Отмена, Карта Google

Браузер, Карта Google, Камера, Галерея, медиаплеер, Отмена, Галерея

выхода нет…

Итак, я хочу знать, что происходит? Почему он не загружает все данные? Когда я сталкиваюсь с этой проблемой, я пытаюсь уменьшить массив до

 public String[] menuOptions={"Browser", "Google Map", "Camera", "Gallery", "Media Player", "Cancel"};
  

Он отображается правильно:

Браузер, Карта Google, камера, Галерея, медиаплеер, Отмена

В классе MenuAdapter нет числовых настроек для загрузки массива, поэтому я этого не понимаю.

Комментарии:

1. Можете ли вы опубликовать код, который вы используете для загрузки ListAdapter и передать его в dialog builder?

Ответ №1:

Я нашел ответ.

В диалоговом окне отображаются неправильные данные, поскольку некоторые данные отображаются за пределами экрана. Диалоговое предупреждение отобразит их в стиле прокрутки (если вы знаете, что такое HTML и CSS, вы поймете, что я имею в виду).

Данные, которые скрываются в стиле прокрутки, будут отображаться случайным образом …… например, мой последний элемент «Exit» скрывается под экраном при загрузке, я перетаскиваю экран для просмотра, он отображает последние данные случайным образом, а не «Exit».

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

Я не знаю, является ли это системной ошибкой или нет.