(Java - Android) Problem z odliczaniem czasu

0

Witam, mam problem z napisaniem prostego odliczania czasu w Androidzie. Uzytkownik zadaje liczbe w sekundach i po nacisnieciu buttonu program ma ja zmniejszac i wyswietlac w oknie. Probowalem w nastepujacy sposob:

public void onClick(View v) {
				 czas = Float.parseFloat(eCzas.getText().toString());
				 timer = new Timer();		
				 task = new TimerTask(){

					@Override
					public void run() {
						
						czas -=0.1;
						setContentView(mainContainer);
						lCzasDoKonca.setText(Float.toString(czas)); //Tutaj przy probie wyswietlenia czegokolwiek aplikacja sie wysypuje.
					}
					 
				 };
				 timer.schedule(task, 100, 1000);
				 onButtonClick(v);
			}});

Z gory dziekuje za udzielona pomoc.

0

Nie możesz bezpośrednio modyfikować widoków w innym wątku niż wątek główny. Spróbuj tak:

 
private Handler handler = new Handler();
public void onClick(View v) {
                                 czas = Float.parseFloat(eCzas.getText().toString());
                                 timer = new Timer();                
                                 task = new TimerTask(){
 
                                        @Override
                                        public void run() {
 
                                                czas -=0.1;
                                    
                                                setContentView(mainContainer);
final float czas_do_wyswietlenia = czas;
handler.post(new Runnable() {
            @Override
            public void run() {
             lCzasDoKonca.setText(Float.toString(czas_do_wyswietlenia)); //Tutaj przy probie wyswietlenia czegokolwiek aplikacja sie wysypuje.
            }
          });
                                                
                                        }
 
                                 };
                                 timer.schedule(task, 100, 1000);
                                 onButtonClick(v);
                        }});

poczytaj trochę o wątkach, zainteresuj się też AsyncTask tutaj możesz o tym poczytać: http://www.vogella.com/articles/AndroidPerformance/article.html
pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1