Ограничить элемент в ListView - PullRequest
0 голосов
/ 24 января 2019

У меня есть ArrayList, который содержит X элементов. В моем адаптере Custom ListView я установил getItemCount (), чтобы он возвращал только 100 элементов. Когда я запускаю свое приложение, представление списка отображается, однако, когда я прокручиваю элемент с индексом 75, он выдает ошибку вроде

java.lang.IndexOutOfBoundsException: индекс: 75, размер: 75

Я предполагаю, что это происходит потому, что ArrayList содержит только 75 элементов. Я не могу вернуть list.size (), потому что размер всегда меняется, он может быть больше или меньше 100, но мне нужно только показать <= 100 элементов. </p>

Может кто-нибудь посоветовать мне, как решить эту проблему?

1 Ответ

0 голосов
/ 24 января 2019

Попробуйте это как getCount()

@Override
public int getCount(){
    return items.length() < 100 ? items.length() : 100;
}

Поскольку вы установили getCount() на return 100 в явном виде, теперь, если в этом ArrayList нет 100 элементов, он повысит IndexOutOfBoundsException, потому что система попытается получить 100 элементов из этого List который не имеет этого.

Таким образом, вместо того, чтобы возвращать 100 всегда, возвращайте 100 только тогда, когда в этом List.

...