Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/50: Рейтинг темы: голосов - 50, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8

Не получается создать таймер

29.05.2012, 09:10. Показов 10401. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил создать таймер для андроида и столкнулся с некоторыми проблемами.
Приложение запускается но при активации таймера выдает ошибку.

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
package com.prim.sample;
 
import java.util.Timer;
import java.util.TimerTask;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
 
public class Prim1Activity extends Activity {
    private TextView tx;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final Button bt=(Button)findViewById(R.id.but);
        tx=(TextView)findViewById(R.id.text);
        bt.setOnClickListener(new OnClickListener() {
        int i = 0;
            public void onClick(View arg0) {
                Timer timer = new Timer();
                timer.schedule(new TimerTask() {
                    
                    @Override
                    public void run() {                 
                        tx.setText(Integer.toString(i++));
                    }
                }, 0,100);                      
            }
        });
    }
}
и main.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    
    <Button android:id="@+id/but"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fff"/>
 
</LinearLayout>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2012, 09:10
Ответы с готовыми решениями:

Не получается запустить таймер
никак не пойму почему не запускается таймер. создал форму, закинул на нее timer1, numericUpDown1 и кнопку. В свойствах таймера Enable...

Не получается запустить таймер
Компилятор Keil, плата stm32vl-discovery. На пинах PB13 &amp; PB14 ничего нет. Подскажите что не так в программе? #include...

Нужно сделать таймер но не получается
Вообщем нужно выполнить команду (допустим Say(&quot;Hello world&quot;)) 3 раза с интервалом в 1 секунду. Я испробовал много способов, но не один не...

13
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
29.05.2012, 14:02
все банально просто, вы изменяете UI не из UI потока.
0
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8
29.05.2012, 14:10  [ТС]
Подскажите как правильнее сделать, потому что я только начинающий, пытаюсь немного освоить андроид программирование
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
29.05.2012, 14:22
вы объяснить суть того что хотите сделать)
1
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8
29.05.2012, 16:35  [ТС]
Я хочу, что бы, при нажатии на кнопочку, в TextView, со скоростью в 0,1 сек, начался отсчет.
т.е. это самое простое что можно сделать с таймером, а дальше, если получится, будет полет фантазии )
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
29.05.2012, 18:09
Лучший ответ Сообщение было отмечено как решение

Решение

ну если пойти самым простым путем, то написать аля, но не самый лучший вариант.)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bt.setOnClickListener(new OnClickListener() {
            int i = 0;
 
            public void onClick(View arg0) {
                Timer timer = new Timer();
                timer.schedule(new TimerTask() {
 
                    @Override
                    public void run() {
                        Prim1Activity.this.runOnUiThread(new Runnable() {
                            public void run() {
                                tx.setText(Integer.toString(i++));
                            }
                        });
                    }
                }, 0, 100);
            }
        });
5
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8
01.06.2012, 14:59  [ТС]
Спасибо получилось
0
1 / 1 / 1
Регистрация: 13.10.2012
Сообщений: 101
05.01.2013, 09:30
Цитата Сообщение от silentnuke Посмотреть сообщение
все банально просто, вы изменяете UI не из UI потока.
Это получается что таймер создает свой поток? Или просто UI можно изменять только из класса где он определяется?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.01.2013, 22:02
первое.
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
29.08.2013, 17:02
Извините за некропостинг)

А если вместо строки tx.setText(Integer.toString(i++)); я хочу вызвать процедуру и в ней обновить TextView, как это реализовать?
Просто в лоб вызов не получается, приложение "падает"
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2013, 22:59
Цитата Сообщение от sirik2012 Посмотреть сообщение
приложение "падает"
смотрите логи.
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
30.08.2013, 09:14
Вот логи:
Добавлено через 9 часов 0 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
08-30 05:12:43.438: E/AndroidRuntime(700): FATAL EXCEPTION: main
08-30 05:12:43.438: E/AndroidRuntime(700): java.lang.NullPointerException
08-30 05:12:43.438: E/AndroidRuntime(700):  at com.example.tab.MainActivity.fff(MainActivity.java:93)
08-30 05:12:43.438: E/AndroidRuntime(700):  at com.example.tab.MainActivity$1$1.run(MainActivity.java:44)
08-30 05:12:43.438: E/AndroidRuntime(700):  at android.os.Handler.handleCallback(Handler.java:615)
08-30 05:12:43.438: E/AndroidRuntime(700):  at android.os.Handler.dispatchMessage(Handler.java:92)
08-30 05:12:43.438: E/AndroidRuntime(700):  at android.os.Looper.loop(Looper.java:137)
08-30 05:12:43.438: E/AndroidRuntime(700):  at android.app.ActivityThread.main(ActivityThread.java:4745)
08-30 05:12:43.438: E/AndroidRuntime(700):  at java.lang.reflect.Method.invokeNative(Native Method)
08-30 05:12:43.438: E/AndroidRuntime(700):  at java.lang.reflect.Method.invoke(Method.java:511)
08-30 05:12:43.438: E/AndroidRuntime(700):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-30 05:12:43.438: E/AndroidRuntime(700):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-30 05:12:43.438: E/AndroidRuntime(700):  at dalvik.system.NativeStart.main(Native Method)
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.08.2013, 20:07
а теперь исправляйте)
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
30.08.2013, 22:40
Не совсем понял что( Это не критично, я уже сделал в теле таймера; мне просто интересно как вынести в отдельную процедуру
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2013, 22:40
Помогаю со студенческими работами здесь

Не получается реализовать таймер для этого светофора
Не могу понять, как сделать в таймере два цикла: первый цикл - сначала должен гореть красный, потом включается желтый(красные горит вместе...

Не получается стартовать таймер, который бы изменял значение content в label
Не получается стартовать таймер, который бы изменял значение content в label. Без таймера - оно изменяется, с - нет. Пробовал и Threading и...

Запускаю таймер, но время отрицательное получается, в чём может быть проблема?
Есть такой вот код и есть вот такой вот вопрос: Почему таймер высчитывает время отрицательно? И есть еще вопрос по поводу записи...

Создать таймер...
Привет всем Появилась необходимость в процедуре создать 2 таймера, но создать их не &quot;вытащить на форму&quot; 2 компонента таймер,...

Создать таймер
Создать таймер обратного отчёта?(Язык Си Шарп,консольное приложение)


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru