Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 873
#1

Как реализовать таймер в AndroidStudio? - Программирование Android

26.08.2014, 22:48. Просмотров 841. Ответов 6
Метки нет (Все метки)

Мне нужен пример использования таймера. Есть кнопка. Необходимо, чтобы по нажатию другой кнопки она программно нажималась каждую секунду:
Java
1
2
3
4
5
6
7
8
9
10
11
12
  public void onClick2(View view) {
 
        java.util.Timer timer2 = new java.util.Timer();
        TimerTask task = new TimerTask() {
            public void run() {
                Button button = (Button) findViewById(R.id.button);
                button.performClick();
            }
        };
        timer2.schedule(task, 100);
 
    }
Я так понимаю, (Task, 100) это не интервал? Как задать его тут? Данный код не работает, вылетает программа. Спасибо заранее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2014, 22:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как реализовать таймер в AndroidStudio? (Программирование Android):

Как поменять пути к папкам AndroidStudio? - Программирование Android
Android Studio, всё работает, проблем нет. Только в папке "Мои документы" создались андроидные папки .AndroidStudio .android ...

Как работает шаблон NavigationDrawer в AndroidStudio, где обрабатывать нажатия на навигационной панели? - Программирование Android
Всем здрасьте! Не могу никак понять, где в шаблоне, который генерирует Android Studio, вешать обработки нажатия на соответствующую...

Не запускается AndroidStudio - Программирование Android
Не запускается AndroidStudio,появляется стартовое окно и исчезает,никаких сообщений,логов тоже никаких не создает. JDK...

Ошибка в logcat AndroidStudio - Программирование Android
Здравствуйте! Написал простенькое приложенице в Студии, ошибок вроде нет. Но при запуске эмулятора приложение вылетает. Не могу понять...

Верстка в AndroidStudio, превью - Программирование Android
Доброго времени суток. Столкнулись с проблемой, хотя даже не с проблемой, а с неудобством. В AndroidStudio превью активити не...

AndroidStudio автодополнение кода - Программирование Android
Есть ли подобное в Android Studio (IDEA)? Такое есть во многих языках, но здесь не нашел - жутко не хватает... Среди подсказок (окошко...

6
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.08.2014, 04:05 #2
С button.performClick(); не работал... попробуйте ее вызвать из другой кнопки. Думаю здесь и есть ошибка! Не советую вызывать кнопку ТАК. Сделайте лучше отдельную функцию для обработчика кнопки и вызывайте его.
Попробуйте еще заменить на timer2.schedule(task, 100, 100);
Еще может быть путаница в потоках... Если не поможет, Вам прийдется описать что делает эта нажимаемая кнопка..
0
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
27.08.2014, 13:24 #3
danek130995, а если так?

Java
1
2
3
4
5
6
7
8
9
10
11
private Handler handler = new Handler();
    public void onClick2(View view) {
        handler.post(new Runnable() {
            @Override
            public void run() {
                Button button = (Button) findViewById(R.id.button);
                button.performClick();
                handler.postDelayed(this, 1000);
            }
        });            
    }
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 873
27.08.2014, 13:38  [ТС] #4
Посмотрите, вот я даже сделал не через кнопку, а просто прописал в таймере, что мне нужно делать. я хочу,чтобы каждую секунду imageView смещалось по форме вправо. Но приложение опять же вылетает.Может быть, я сам таймер не так реализовываю? Помогите пожалуйста разобраться
Java
1
2
3
4
5
6
7
8
9
10
11
12
public void onClick2(View view) {
 
        java.util.Timer timer2 = new java.util.Timer();
        TimerTask task = new TimerTask() {
            public void run() {
                ImageView imageView2 = (ImageView) findViewById(R.id.imageView2);
                imageView2.setX(a); a=a+4;
            }
        };
        timer2.schedule(task, 100,100);
 
    }
Добавлено через 3 минуты
Пишет handler is abstract, cannot be instantiated , импорт вроде сделал

Добавлено через 39 секунд
YuraAAA, Пишет handler is abstract, cannot be instantiated , импорт вроде сделал
0
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
27.08.2014, 13:47 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
danek130995, import android.os.handler?
0
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 873
27.08.2014, 14:06  [ТС] #6
Юра, сделал импорт, предложенный программой. Сейчас сделал импорт, который ты предложил. Все заработало! Спасибо!

Добавлено через 14 минут
YuraAAA, а как остановить сие чудо? Команда для стопа таймера?
0
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
27.08.2014, 14:15 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
danek130995,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private Handler handler = new Handler();
    private boolean isRunning;
 
    public void onClick2(View view) {
        isRunning = true;
        handler.post(new Runnable() {
            @Override
            public void run() {
                if (isRunning) {
                    Button button = (Button) findViewById(R.id.button);
                button.performClick();
                handler.postDelayed(this, 1000);
                }
            }
        });
    }
 
    private void invokeStop() {
        isRunning = false;
    }
Добавлено через 44 секунды
вызываем invokeStop() - останавливается. Нажимаем на кнопку - начинает снова.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2014, 14:15
Привет! Вот еще темы с ответами:

Запуск приложения в AndroidStudio - Программирование Android
Установил AndroidStudio импортировал туда приложение которое раньше замечательно запускалось в эклипс. При попытке запуска получаю...

Не могу проект запустить (AndroidStudio) - Программирование Android
Не могу проект запустить. Hello word Ругается на что-то. AndroidStudio jdk 8 стоит android-sdk лежит рядом с AndroidStudio см...

Не работает автозагрузка сервиса AndroidStudio - Программирование Android
Делаю пример из урока по Android Studio. Сервис работает только до перезагрузки. Поможите, пожалуйста тугому) Код MyService.java ...

Не получается запустить пустой проект AndroidStudio - Программирование Android
Создаю проект пустого приложения. Оно мне подчеркивает @Override, если на него кликнуть, предлагает убрать, если убрать, предлагает...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
27.08.2014, 14:15
Ответ Создать тему
Опции темы

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