Android Studio - Button ändert Farbe erst nach Delay?

  • Antworten:6
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 26

29.01.2018, 09:15:10 via Website

Hallo!

Wir haben ein kleines Problem mit unserer Quiz App.
Wir wollen bei einer richtigen/falschen Antwort den Button
in einer an die Antwort angepasste Farbe färben.

rot = falsch
grün = richtig

Code: https://pastebin.com/HkvhsbUY

Wenn wir jetzt auf ein richtiges klicken, dann ändert sich die Farbe erst
nach dem Delay. Was machen wir falsch?

Antworten
  • Forum-Beiträge: 2.909

29.01.2018, 09:20:33 via Website

Hallo Joshua ,

das macht man unter Android auch nicht so - eher unter C / C++
In dem Moment wird der UI-Thread blockiert.

Euren "Warte Thread" müsstet ihr z.b. als AsyncTask ausführen

— geändert am 29.01.2018, 09:38:00

Liebe Grüße - Stefan
[ App - Entwicklung ]

Joshua "Joseph" Jones

Antworten
  • Forum-Beiträge: 2.909

29.01.2018, 09:37:46 via Website

Ist jetzt nicht euer Ernst , oder ? :)

Tante Google und die originale API - Dokumentation helfen normalerweise gut weiter.

https://developer.android.com/reference/android/os/AsyncTask.html
http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html

— geändert am 29.01.2018, 10:09:03

Liebe Grüße - Stefan
[ App - Entwicklung ]

Pascal P.Joshua "Joseph" Jones

Antworten
  • Forum-Beiträge: 2.909

29.01.2018, 10:23:48 via Website

Das ist das Gleiche in Grün.

Ich kann nur das wiederholen , was ich oben bereits erwähnt habe : AsyncTask
Und ein sehr gutes Tutorial dazu habe ich auch bereits schon geliefert.

— geändert am 29.01.2018, 10:31:46

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 2.243

29.01.2018, 13:26:13 via Website

Wenn man etwas verzögert ausführen will, ist ein Handler auch nützlich.

long delay = 3000;
new Handler().postDelayed(new Runnable(...), delay);

Auch da muss man aber mit dem Lifecycle der Activity/Fragments aufpassen und die Aktion stornieren, wenn die Activity geschlossen wird. Sonst crashed es.

— geändert am 29.01.2018, 13:28:01

Joshua "Joseph" Jonesswa00

Antworten

Empfohlene Artikel