Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
dell29
1 / 1 / 1
Регистрация: 06.08.2012
Сообщений: 32
#1

Timer в ListView

10.08.2013, 00:52. Просмотров 761. Ответов 4
Метки нет (Все метки)

Добрый вечер! Поставлена задача: нужно создать ListView в элементах которого тикало время от даты создания объекта. Я пошел по самому короткому и казалось бы единственному пути. Сделать ListView, запустил таймер который будет каждую секунду обновлять значения для адаптера ( adapter.notifyDataSetChanged(); ) Естественно, ListView стал дрожать при прокрутке. Решено было при начале прокрутки убивать таймер, а при остановке прокрутки создавать заново

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            switch (scrollState) {
            case SCROLL_STATE_TOUCH_SCROLL:
                timer.cancel();
                break;
 
            case SCROLL_STATE_IDLE:
                timer = new Timer();
                                timer.schedule(new TimeUpdater(), 1000, 1000);
            
            }
            
        }
На VirtualBox работало нормально, а вот на устройстве лютые тормоза(не успевает срабатывать код создания нового таймера при прокрутке).
Можно ли как то заставить таймер преостановиться а потом запуститься, не на несколько секунд а по команде.
P.S. Я знаю что обновления таймера кажую секунду это дебильная идея, но таков каприз в ТЗ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2013, 00:52
Ответы с готовыми решениями:

ListView. После добавления кнопки перестал быть доступен сам ListView
Кастомизировал ListView с помощью нескольких TextView. Но после того, как...

Listview вывод данных и переход по нажатию на другой Listview SQLite
Доброго извините за название темы, долго не мог сформировать название, В общем...

Данные из SQlite в ListView, обработка события ListView
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные...

Передача данных из ListView в другой Activity в ListView
Добрый день. Пытаюсь разобраться с передачей данных с ListView, но выходит что...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton?
Добрый день. Затрудняюсь понять один момент: У меня есть ListView,...

4
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.08.2013, 01:24 #2
создать кастомною View для отображения таймера которая будет обновлять сама себя вместо обновления списка не пробовали?
0
dell29
1 / 1 / 1
Регистрация: 06.08.2012
Сообщений: 32
10.08.2013, 01:38  [ТС] #3
Пробовал, таймер во всех вюхах, обновлял только видимые, все равно тормозит(((
Может кривые руки и что то не так писал?
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
10.08.2013, 12:55 #4
Не уверен, но...
Может попробуете сделать (желательно потоко-незавимую) переменную, глядя на которую таймеры будут обновлять список. А приостанавливать/запускать таймеры просто переключая эту переменную в 1/0 или true/false. Это надежнее. В таймерах при этом реально ничего не пересоздается... Классы не тронуты, мусорщик не задействован...
1
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.08.2013, 14:02 #5
можно использовать View.postDelayed вместо таймера.
0
10.08.2013, 14:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2013, 14:02

Копирование данных из 1 listView во 2 listView
Нужно что бы при нажатии на один элемент в первом ListView он копировался во...

Timer
Я пишу приложение.Сначала для красоты показывается прогресс бар.Потом через...

Обращение к UI из Timer
при помощи какой функции из таймера можно обратиться к элементу UI??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru