Обновление ListView , когда пользователь прокручивает его

167
30 ноября 2018, 15:20

Необходимо постоянно обновлять список чатов в ListView и этот список пользователь может постоянно прокручивать. Обновление делаю в

  private TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            if(isLoading) return;
            arrayChat.clear();
            loadChatList(((BaseActivity)getActivity()).login, ((BaseActivity)getActivity()).key, limit,0,"");
        }
    };   

Вся проблема в arrayChat.clear(). Если пользователь в данный момент прокручивает список, то на этой строчке появляется ошибка IndexOutOfBoundsException: Index: 58, Size: 0.

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

Answer 1

Оказалось проще написать следущее))

int index = arrayChat.indexOf(chat);
    if(index>-1)
    {
        if(index!=j) {
            arrayChat.remove(chat);
            arrayChat.add(j, chat);
        }
    }
    else
        arrayChat.add(chat);

Всем спасибо.

READ ALSO
Полетел каталог товаров wordpress

Полетел каталог товаров wordpress

Каталог товаров в магазине слетел каким то чудом и выдает что то вроде этого

162
Как выровнять тайтл (смотреть пример)

Как выровнять тайтл (смотреть пример)

Ребята, короче, такие дела уже по-моему задавал тут вопрос этотНе могу вертикально отцентровать элемент (в хроме норм, а в IE и firefox - нет )

217
Как выровнять элементы

Как выровнять элементы

Как выровнять элементы в строках? Дело в том, что заголовки разного размера и все плыветПоломал всю голову, кроме как переделать все в css grid - сделать...

165
node.js + imagemagick = Error: spawn identify ENOENT

node.js + imagemagick = Error: spawn identify ENOENT

Когда я пытаюсь исполнить код

284