
znieh99
Fortgeschrittenes Mitglied
Hallo Forum,
ich mache meine ersten Schritte mit Android und versuche eine Timer-Funktion zu programmieren, welche nach einem Button-Klick mit 3 Sekunden Verzögerung einen Wert in einem TextView ausgibt welcher immer um 1 erhöht wird.
Das Ergebnis nach dem ersten Klick ist, dass der Emulator "Unfortunately, TestTimer has stopped." ausgibt und die Konsole folgende Meldungen:
at android.widget.TextView.setText(TextView.java:4174)
at com.example.heinz.testtimer.MainActivity.showWert(MainActivity.java:28)
at com.example.heinz.testtimer.MainActivity$RunTimer.run(MainActivity.java:38)
at java.util.Timer$TimerImpl.run(Timer.java:284)
01-20 08:52:12.320 4437-4456/com.example.heinz.testtimer E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb4016b40
Ich habe im Code die Zeilen 28 und 38 gekennzeichnet.
ich mache meine ersten Schritte mit Android und versuche eine Timer-Funktion zu programmieren, welche nach einem Button-Klick mit 3 Sekunden Verzögerung einen Wert in einem TextView ausgibt welcher immer um 1 erhöht wird.
Das Ergebnis nach dem ersten Klick ist, dass der Emulator "Unfortunately, TestTimer has stopped." ausgibt und die Konsole folgende Meldungen:
at android.widget.TextView.setText(TextView.java:4174)
at com.example.heinz.testtimer.MainActivity.showWert(MainActivity.java:28)
at com.example.heinz.testtimer.MainActivity$RunTimer.run(MainActivity.java:38)
at java.util.Timer$TimerImpl.run(Timer.java:284)
01-20 08:52:12.320 4437-4456/com.example.heinz.testtimer E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb4016b40
Ich habe im Code die Zeilen 28 und 38 gekennzeichnet.
Code:
package com.example.heinz.testtimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
Timer timer;
int wert;
public TextView tx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("Test Position anzeigen");
timer = new Timer();
}
public void showWert() {
wert += 1;
tx = (TextView) findViewById(R.id.text_feld_name);
tx.setText(String.valueOf(wert)); //Zeile 28
}
public void onClickStartTim(View view) {
timer.schedule (new RunTimer(), 5000);
// showWert();
}
class RunTimer extends TimerTask {
public void run() {
showWert(); //Zeile 38
}
};
}