Почему getCount в адаптере вызывается так много раз? - программирование
Подтвердить что ты не робот

Почему getCount в адаптере вызывается так много раз?

У меня есть пользовательский список, и для его просмотра требуется несколько минут. Когда я пытался проверить, где проблема, я увидел, что даже когда у меня есть только 1 элемент в списке, метод getCount() вызывается 5 раз, getVIew() вызывается один раз, затем getCount() является вызывая больше времени. В целом getCount() вызывается 7 раз. Это имеет смысл?

Спасибо!

4b9b3361

Ответ 1

Вы можете увидеть здесь различные внутренние вызовы метода Adapter.getCount().

Но вы должны иметь в виду, что вы не можете контролировать, как этот метод будет вызван.

Его можно вызвать несколько раз, и поэтому вы должны держать его как можно быстрее.

Ответ 2

getCount() вызывается слишком много раз, потому что App-USER может update its list (может добавлять данные в свою память) в любое время, и поэтому мы возвращаем (storage).size() (общее количество элементов).

Ответ 3

Адаптер getCount() будет вызываться в следующих случаях.

1) при установке адаптера в режим просмотра списка/сетки.

2), когда мы назовем notifyDataSetChanged на адаптере.

Итак, проверьте свой код, вы можете делать вышеприведенные случаи больше времени или рекурсивно.

Ответ 4

У вас должна быть кнопка поиска, которая обновляет адаптер при поиске. Этот метод называется рисованием вида несколько раз, если внутри этого метода есть setAdapter, тогда getCount будет вызываться много раз и закончится возвратом 0, и вы не будете заполнены.