0

Ich habe eine GridView mit einer Animation. Wenn wir activity starten, funktioniert die animation, von dort aus, wenn wir zu einer anderen Aktivität gehen, brauche ich die Animation neu zu starten, genauso wie beim Start. Wenn jetzt die Zurück-Taste gedrückt wird, geht es zur vorherigen Aktivität, aber für die oben erwähnte GridView gibt es keine Animation. Hier ist der Code:Animation der vorherigen Aktivität neu starten, wenn onBackPressed()

CustomGrid adapter = new CustomGrid(Grids.this, web, imageId); 
grid = (GridView) findViewById(R.id.grid); 
grid.setAdapter(adapter); 
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.grid_item_anim); 
controller = new GridLayoutAnimationController(animation, .2f, .2f); 
grid.setLayoutAnimation(controller); 
+0

Tun Sie dies in 'onResume()' der Aktivität. – SripadRaj

Antwort

0

Aus Ihrer Beschreibung, gehe ich davon aus, dass Sie Ihren Code zu setzen oben in die onCreate() Methode Ihrer Aktivität. Versuchen Sie es stattdessen in onResume() setzen, die jedes Mal aufgerufen wird, wenn eine Aktivität wieder aufgenommen wird (zurück zu, in Ihrem Fall), im Gegensatz zu onCreate().

2

Gehen Sie durch diesen Link ActivityLifeCycle

Es ist einfach, weil ich nehme an, Sie Ihren Code auf onCreate (geschrieben); Wenn Sie eine Aktivität starten, ruft onCreate() nur einmal auf, wenn Sie Ihre Aktivität wechseln und zurückkommen. Ihr Status wird in onResume() geändert, damit der Animationscode nicht mehr funktioniert.

Sie müssen Ihren Code schreiben in onResume() Methode, die beim Start Aktivität aufrufen und auch immer wenn Sie zu Ihrer Aktivität zurückkehren.

Wenn die Aktivität erstmals lädt die Ereignisse, wie unten genannt werden:

onCreate() 
onStart() 
onResume() 

Wenn Schalter die Aktivität

onPause() 

Wenn zurück zu Aktivität

onResume() 

Hinweis: Eine Sache zu beachten ist, dass onResume() auch aufgerufen wird, wenn eine Konfigurationsänderung auftritt. Wenn Sie den Code in onResume() einfügen, wird die Animation beim Drehen des Geräts erneut abgespielt. Sie können dies je nach Ihren Anforderungen vermeiden.

Verwandte Themen