A
Android_DEV
Ambitioniertes Mitglied
- 1
Hallo,
bei meinem Intervall CountDownTimer Projekt nutze ich sobald die 'normale' Zeit abgelaufen ist eine onFinish Methode in der ein sleep Thread ist.
Dieser Thread dauert dann z.B. 10 Sekunden und dann läuft das Programm von vorne los. Wenn der Threat anfängt soll im TextView nicht mehr "00:00:00" stehen sondern "Warte".
Meine Idee:
Sobald die onFinish Methode aufgerufen wird, ändert der Text sich mit.
Das funktioniert nur leider nicht.
Hier der komplette code:
Danke im voraus
bei meinem Intervall CountDownTimer Projekt nutze ich sobald die 'normale' Zeit abgelaufen ist eine onFinish Methode in der ein sleep Thread ist.
Dieser Thread dauert dann z.B. 10 Sekunden und dann läuft das Programm von vorne los. Wenn der Threat anfängt soll im TextView nicht mehr "00:00:00" stehen sondern "Warte".
Meine Idee:
Code:
public void onFinish() {
textViewTime.setText("wait");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace(); }
this.start(); }
Sobald die onFinish Methode aufgerufen wird, ändert der Text sich mit.
Das funktioniert nur leider nicht.
Hier der komplette code:
Code:
public class MainActivity extends ActionBarActivity {
Button btnStart, btnStop;
TextView textViewTime;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnStart = (Button)findViewById(R.id.btnStart);
btnStop = (Button)findViewById(R.id.btnStop);
textViewTime = (TextView)findViewById(R.id.textViewTime);
textViewTime.setText("00:00:00");
final CounterClass timer = new CounterClass(10000,1000);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.start();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
}
});
}
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@SuppressLint("NewApi")
public class CounterClass extends CountDownTimer {
public CounterClass(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
textViewTime = (TextView)findViewById(R.id.textViewTime);
textViewTime.setText("wait");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.start();
}
@SuppressLint("NewApi")
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
System.out.println(hms);
textViewTime.setText(hms);
}
}
}
Danke im voraus