Когда элемент появится в поле зрения, будет вызван ваш метод ListAdapter.getView ().
Это может произойти несколько раз за сеанс, если, например, вы прокручиваете элемент за пределами экрана и затем снова включаете.
Я бы посоветовал вам поставить точку останова на getView () и запустить приложение с помощью отладчика.Повторите ваш тест, и в случае, если getView () будет вызван во второй раз, проверьте логику, в которой установлен ваш флажок.
Еще одним соображением является то, что вторым параметром getView является представление 'convertView'.Это один из ваших собственных видов из других записей списка, который больше не отображается.ОС возвращает вам это представление, чтобы у вас была возможность «перезапустить» представление для создания новой записи, вместо того, чтобы надувать новое, что повлияет на производительность.
Если вы игнорируете этоПараметр, это не будет проблемой (хотя для создания плавного списка прокрутки вы можете использовать его в будущем - просто не забудьте проверить, что представление того типа, которого вы ожидаете, установив тег).
Если вы решите использовать этот параметр для попытки перезапуска представления, проверьте свою логику и убедитесь, что вы устанавливаете все элементы управления в желаемое состояние, так как состояние макета по умолчанию может не применяться.