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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 69, средняя оценка - 4.80
Bolilbik
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8
#1

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

29.05.2012, 09:10. Просмотров 8599. Ответов 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>
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2012, 09:10     Не получается создать таймер
Посмотрите здесь:

Таймер не работает Android
Android Таймер
Android Таймер на паузу
Android Таймер и изображение
Зацикленный таймер Android
Одноразовый таймер Android
Android Не получается создать два AsyncTask
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
29.05.2012, 14:02     Не получается создать таймер #2
все банально просто, вы изменяете UI не из UI потока.
Bolilbik
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8
29.05.2012, 14:10  [ТС]     Не получается создать таймер #3
Подскажите как правильнее сделать, потому что я только начинающий, пытаюсь немного освоить андроид программирование
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
29.05.2012, 14:22     Не получается создать таймер #4
вы объяснить суть того что хотите сделать)
Bolilbik
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8
29.05.2012, 16:35  [ТС]     Не получается создать таймер #5
Я хочу, что бы, при нажатии на кнопочку, в TextView, со скоростью в 0,1 сек, начался отсчет.
т.е. это самое простое что можно сделать с таймером, а дальше, если получится, будет полет фантазии )
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
29.05.2012, 18:09     Не получается создать таймер #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ну если пойти самым простым путем, то написать аля, но не самый лучший вариант.)
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);
            }
        });
Bolilbik
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 8
01.06.2012, 14:59  [ТС]     Не получается создать таймер #7
Спасибо получилось
Klafe
1 / 1 / 0
Регистрация: 13.10.2012
Сообщений: 101
05.01.2013, 09:30     Не получается создать таймер #8
Цитата Сообщение от silentnuke Посмотреть сообщение
все банально просто, вы изменяете UI не из UI потока.
Это получается что таймер создает свой поток? Или просто UI можно изменять только из класса где он определяется?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.01.2013, 22:02     Не получается создать таймер #9
первое.
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
29.08.2013, 17:02     Не получается создать таймер #10
Извините за некропостинг)

А если вместо строки tx.setText(Integer.toString(i++)); я хочу вызвать процедуру и в ней обновить TextView, как это реализовать?
Просто в лоб вызов не получается, приложение "падает"
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2013, 22:59     Не получается создать таймер #11
Цитата Сообщение от sirik2012 Посмотреть сообщение
приложение "падает"
смотрите логи.
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
30.08.2013, 09:14     Не получается создать таймер #12
Вот логи:
Добавлено через 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)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.08.2013, 20:07     Не получается создать таймер #13
а теперь исправляйте)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2013, 22:40     Не получается создать таймер
Еще ссылки по теме:

Таймер Android
Таймер Android
Android Таймер в Java
Android Таймер с вибрацией
Android LibGDX, не получается создать apk файл

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

Или воспользуйтесь поиском по форуму:
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
30.08.2013, 22:40     Не получается создать таймер #14
Не совсем понял что( Это не критично, я уже сделал в теле таймера; мне просто интересно как вынести в отдельную процедуру
Yandex
Объявления
30.08.2013, 22:40     Не получается создать таймер
Ответ Создать тему
Опции темы

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