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

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

Войти
Регистрация
Восстановить пароль
 
danek130995
 Аватар для danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 819
26.08.2014, 22:48     Как реализовать таймер в AndroidStudio? #1
Мне нужен пример использования таймера. Есть кнопка. Необходимо, чтобы по нажатию другой кнопки она программно нажималась каждую секунду:
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) это не интервал? Как задать его тут? Данный код не работает, вылетает программа. Спасибо заранее
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,488
27.08.2014, 04:05     Как реализовать таймер в AndroidStudio? #2
С button.performClick(); не работал... попробуйте ее вызвать из другой кнопки. Думаю здесь и есть ошибка! Не советую вызывать кнопку ТАК. Сделайте лучше отдельную функцию для обработчика кнопки и вызывайте его.
Попробуйте еще заменить на timer2.schedule(task, 100, 100);
Еще может быть путаница в потоках... Если не поможет, Вам прийдется описать что делает эта нажимаемая кнопка..
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.08.2014, 13:24     Как реализовать таймер в AndroidStudio? #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);
            }
        });            
    }
danek130995
 Аватар для danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 819
27.08.2014, 13:38  [ТС]     Как реализовать таймер в AndroidStudio? #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 , импорт вроде сделал
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.08.2014, 13:47     Как реализовать таймер в AndroidStudio? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
danek130995, import android.os.handler?
danek130995
 Аватар для danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 819
27.08.2014, 14:06  [ТС]     Как реализовать таймер в AndroidStudio? #6
Юра, сделал импорт, предложенный программой. Сейчас сделал импорт, который ты предложил. Все заработало! Спасибо!

Добавлено через 14 минут
YuraAAA, а как остановить сие чудо? Команда для стопа таймера?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2014, 14:15     Как реализовать таймер в AndroidStudio?
Еще ссылки по теме:

Как работает шаблон NavigationDrawer в AndroidStudio, где обрабатывать нажатия на навигационной панели? Android
Стили в AndroidStudio для разных API Android
Android Не получается запустить пустой проект AndroidStudio
AndroidStudio подключение к базе данных Oracle Android
Android Не запускается AndroidStudio

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

Или воспользуйтесь поиском по форуму:
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.08.2014, 14:15     Как реализовать таймер в AndroidStudio? #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() - останавливается. Нажимаем на кнопку - начинает снова.
Yandex
Объявления
27.08.2014, 14:15     Как реализовать таймер в AndroidStudio?
Ответ Создать тему
Опции темы

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