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

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

Войти
Регистрация
Восстановить пароль
 
Rameron
Си-решеточник
134 / 128 / 38
Регистрация: 07.02.2011
Сообщений: 637
#1

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

01.05.2012, 15:12. Просмотров 969. Ответов 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.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 15:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не понял как работать с таймером... (Программирование Android):

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

Как работать с таймером? - C#
Извините, сильно туплю. При клике на кнопку у меня создаются экземпляры класса ClassName и SecondClassName: var cn = new ClassName(); ...

не понимаю как работать с таймером - C++ Qt
Есть окно в нем label. При вызове метода SetText в label должен появиться текст на три секунды. Текст этот появляется но на время "как...

Не умею работать с таймером! - Delphi
Сделал так что бы через МейнМеню менялись форма Shape на форме. Но нужно что бы ещё через меню запускалась пошаговая демонстрация этих...

Собирался покупать gtx 580, но по разным статьям в инете понял, что GTX 760 мощнее? Или я неправильно понял? - Видеокарты
Привет всем. Сегодня решил собрать новый системный блок. ПРоц уже есть - Core i5-2380P, ОЗУ 8 гб CorsAir 1333 Собирался покупать gtx...

Производная, не понял как упростили - Математический анализ
Доброго времени суток математики :) сижу, готовлюсь... смотрю пример, для самопроверки и не могу "въехать", как упростили данное чудо,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2012, 15:12
Привет! Вот еще темы с ответами:

Не понял как прикрутить timeline - C# WPF
Здесьнаходиться обзор классной timeline.Вот скачал я библиотеку, добавил в reference в silverlight(не .web).А как на тулбокс поместить эти...

Не понял, как вывести массив B - Delphi
Задана матрица размером . Получить массив B, присвоив его k-му элементу значение 1, если k-ая строка матрицы симметрична, и значение 0 в...

Не понял как запустить программу Hello World в PHP - PHP
Читаю книгу уже 100 страниц прочел про PHP, никак не могу завести первую программу. Читать книги легко, только очень трудно решать...

Цикл(не понял как его тут применить) - Turbo Pascal
Здесь у меня одна переменная,мне нужно чтоб: 0<=a<=10 var A:integer; Begin; writeln('Введите число,которое будет не меньше о, и не...


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

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

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