S
Speedy1985
Neues Mitglied
- 0
Guten Tag zusammen,
ich bin neu hier im Forum und habe mich angemeldet, weil ich einfach nicht mehr weiter weiß und hoffe auf eure Hilfe.
Im Buch "Android-Apps entwickeln" von Uwe Post, welches ja schon mehrfach für Forenbeiträge gesorgt hat, bin ich nun beim Mückenfang-Projekt zumindest schon so weit, dass ich bei den Animationen angekommen bin, genauer gesagt beim Ausblenden der Mücke. Dabei heißt es, damit nicht gleichzeitig eine Mücke gezeichnet und entfernt wird, muss das eigentliche "Löschen" der Mücke an den handler übergeben werden. Das verstehe ich alles. Somit ist gewährleistet, dass nicht zwei Sachen gleichzeitig ablaufen, sondern schön nacheinander.
Dafür wird ein AnimationsListener erzeugt, der etwas ausführt, sobald die Animation beendet ist. Siehe Code:
Uwe Post schreibt, um nicht noch eine innere Klasse mit Konstruktor erzeugen zu müssen, verschachtelt er das ganze zu einer anonymen inneren Klasse.
Leider gibt mir eclipse hier bei der handler.post(...-Anweisung eine Fehlermeldung aus:
The method post(Runnable) in the type Handler is not applicable for the arguments (new GameActivity.Runnable(){})
Was hat dies zu bedeuten?
Vielleicht habt ihr einen Tipp für mich!
Viele Grüße, Christian
ich bin neu hier im Forum und habe mich angemeldet, weil ich einfach nicht mehr weiter weiß und hoffe auf eure Hilfe.
Im Buch "Android-Apps entwickeln" von Uwe Post, welches ja schon mehrfach für Forenbeiträge gesorgt hat, bin ich nun beim Mückenfang-Projekt zumindest schon so weit, dass ich bei den Animationen angekommen bin, genauer gesagt beim Ausblenden der Mücke. Dabei heißt es, damit nicht gleichzeitig eine Mücke gezeichnet und entfernt wird, muss das eigentliche "Löschen" der Mücke an den handler übergeben werden. Das verstehe ich alles. Somit ist gewährleistet, dass nicht zwei Sachen gleichzeitig ablaufen, sondern schön nacheinander.
Dafür wird ein AnimationsListener erzeugt, der etwas ausführt, sobald die Animation beendet ist. Siehe Code:
Code:
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]private[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]class[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] MueckeAnimationListener [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]implements[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] AnimationListener {[/SIZE][/LEFT]
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] private[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] View [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]muecke[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];[/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] public[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] MueckeAnimationListener(View m) {[/SIZE]
[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0] muecke[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = m;[/SIZE]
[SIZE=2] }[/SIZE][/LEFT]
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] public[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] onAnimationEnd(Animation animation) {[/SIZE]
[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0] handler[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].[U]post[/U]([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Runnable() {[/SIZE]
[SIZE=2][COLOR=#646464][SIZE=2][COLOR=#646464] @Override[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#646464]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] public[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] run() {[/SIZE]
[SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0] spielbereich[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].removeView([/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]muecke[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2] }[/SIZE]
[SIZE=2] });[/SIZE]
[SIZE=2] }[/SIZE][/LEFT]
[LEFT][SIZE=2][COLOR=#646464][SIZE=2][COLOR=#646464] @Override[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#646464]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] public[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] onAnimationRepeat(Animation animation) {[/SIZE]
[SIZE=2] }[/SIZE][/LEFT]
[LEFT][SIZE=2][COLOR=#646464][SIZE=2][COLOR=#646464] @Override[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#646464]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] public[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] onAnimationStart(Animation animation) {[/SIZE]
[SIZE=2] } [/SIZE][/LEFT]
[SIZE=2]}[/SIZE]
Uwe Post schreibt, um nicht noch eine innere Klasse mit Konstruktor erzeugen zu müssen, verschachtelt er das ganze zu einer anonymen inneren Klasse.
Leider gibt mir eclipse hier bei der handler.post(...-Anweisung eine Fehlermeldung aus:
The method post(Runnable) in the type Handler is not applicable for the arguments (new GameActivity.Runnable(){})
Was hat dies zu bedeuten?
Vielleicht habt ihr einen Tipp für mich!
Viele Grüße, Christian
Zuletzt bearbeitet: