plusone

Posts mit dem Label alexroid werden angezeigt. Alle Posts anzeigen
Posts mit dem Label alexroid werden angezeigt. Alle Posts anzeigen

1. April 2011

Threadübergreifend GUI ändern

So lieblings Problem, wenn man es nicht kennt ;)

  • Problembeschreibung
    • Activity beinhaltet den View
    • Thread/Runnable läuft nebenbei und soll dem View Text setzten
  • Exception
    • android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
  • Lösung

Ein Handler der in der Activity definiert wird, erlaubt es euch über ihr auf die Activity und den GUI-Thread zu zugreifen.
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
//DO smth.
}
};
Diese kann auch ggfs. auch als static deklariert werden.
Die Message bietet euch einiges an Objekten und prim. Datentypen, die euch helfen euer Ziel zu erreichen.
Zitat: "arg1 and arg2 are lower-cost alternatives to using setData() if you only need to store a few integer values."

Einfaches handling:
Message instanzieren, Werte füllen und zum Handler schicken.

Message message = new Message();
message.arg1=8; //int 1
message.arg2=15; //int 2
handler.sendMessage(message);


Was euch auch noch behilflich sein könnte ist Timed und AsyncTask.

Ich verabschiede mich und wünsche euch viel Erfolg beim Programmieren.

regards
Alex

Java, Android und ich! Hey ihr..

... seid dabei meinen neuen Blog zu lesen.

Hi,

ich bin ein FIAEler. Ihr kennt Noob und Nerd von Einslive? Nein? Wird langsam Zeit...
So nun könnt ihr euch sicher sein, was ich definitiv nicht bin!

Jetzt zu mir und zum Inhalt. Ich bin ein Androidentwickler und hier werde ich euch auf dem Laufendem halten. Hier erfahrt ihr die üblichen Schwierigkeiten mit der Programmierung von Apps und natürlich der passenden Lösung dazu :)

Ich habe letztes Jahr mit Android angefangen und habe mehrjährige Erfahrung mit Java. Und werde auch in der Zukunft auf beiden Gebieten tätig sein.

Ich heiße euch herzlich Willkommen! Auf gutes Programmieren.

regards
Alex