Threads einfachen Zähler einbauen

  • 1 Antworten
  • Letztes Antwortdatum
I

idealist

Neues Mitglied
0
Hallo zusammen,
meine kleine App stürzt immer wieder ab, ich kann den Fehler nicht finden.
Problemstellung: Habe eine einfache App: bei Button-Klick soll gezählt werden.
Habe dazu eine innere Klasse geschrieben, die Thread erweitert.
in Java klappt das. Unter Android stürzt es immer wieder ab.
Ich würde mich sehr über hilfreiche Antworten freuen,

Code:
public class Start extends Activity implements OnClickListener{
    TextView e;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);
        Button b= (Button)findViewById(R.id.button1);
        b.setOnClickListener(this);
       e= (TextView)findViewById(R.id.textView1);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_start, menu);
        return true;
    }

    public void onClick(View v) {
    Thread neu= new Zaehler();
    neu.start();
    }

    class Zaehler extends Thread {

        public void run() {
            for (int i = 0; i < 10; i++) {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                e.setText(i + "");
            }
        }
    }

}
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    48,4 KB · Aufrufe: 247
Zuletzt bearbeitet:
Du kannst in Android ein GUI Element nur aus dem Main Thread heraus ändern. Du änderst in Deinem Programm den Text für Deine TextView aus einem seperaten Thread heraus und nicht aus Deinem Main Thread. Das funktioniert bei Android nicht.

Schau Dir mal die Routine view.post() an. Damit kannst Du einen Update der GUI Elemente auch von ausserhalb des Main Threads aus anstossen.
 
Zurück
Oben Unten