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

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

Войти
Регистрация
Восстановить пароль
 
Rameron
Си-решеточник
131 / 125 / 37
Регистрация: 07.02.2011
Сообщений: 631
#1

Не понял как работать с таймером... - Программирование Android

01.05.2012, 15:12. Просмотров 949. Ответов 0
Метки нет (Все метки)

Всем доброго времени суток.

Возникла проблема работы с таймером (код, похоже, полная ересь)

При нажатии на кнопку, её фон должен на 1 секунду сменится на иной и возвратится обратно.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
...
public void onClick(View arg0) 
    {
        int curID = arg0.getId();
 
        new TimerWork(this, curID).run();  //создание потока с таймером
    }
}
 
class TimerWork extends Thread
{
    Activity act;
    int btnID;
    public TimerWork(Activity act, int btnID)
    {
        this.act = act;
        this.btnID = btnID;
    }
    
    public void run()
    {
        createTimer();
    }
    public void createTimer()
    {
        Timer tm = new Timer();
        tm.schedule(new TimerFunc(act, btnID), 100, 1000);
    }
}
 
class TimerFunc extends TimerTask
{
    Activity act;
    int btnID;
    Boolean btnState = false;
    public TimerFunc(Activity act, int btnID)
    {
        this.act = act;
        this.btnID = btnID;
    }
    
    public void run() 
    {
        btnState=!btnState;
        Button btn = (Button) act.findViewById(btnID);
        
        if (btnState)
        {
            btn.setBackgroundResource(R.drawable.menu_button);
        }
        else
        {
            btn.setBackgroundResource(R.drawable.menu_button_clicked);
        }
        
    }
}
Но в итоге приложение падает при нажатии на саму кнопку.

С таймером я как-то совсем не разобрался и, скорее всего, TimerTask и так наследует класс Thread или интерфейс Runnable, то есть поток для него отдельный не надо...

Кто может - просветите пожалуйста.

Добавлено через 6 минут
Тему можно закрыть

Разобрался. Забыл, что с интерфейсом можно работать только в UI Thread.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 15:12     Не понял как работать с таймером...
Посмотрите здесь:
Android Как работать с таймером
Мягкий лонг-клик по кнопке с таймером Android
Работа с таймером и прочие мелочи в Android Studio Android
Android Dimens как работать?
SlidingMenu как работать Android
Как работать с файлом .db? Android
Android Как правильно работать с BITMAP?
Android Объясните как работать с сортировкой
Android Как работать с файловым менеджером
Как работать с API VK / Facebook? Android
Android Как заставить работать BroadcastReceiver?
Как работать со сканером отпечатка пальцев Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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