2016-07-25 13 views
1

Ich versuche derzeit, ein Java-basiertes Problem in Android Studio zu lösen. Ich habe meinen Kopf über dieses Problem verwirrt, in vielen Foren und Webseiten suchend, keine Lösung in den letzten zwei Tagen zu finden. Also suche ich jetzt hier Hilfe.Mehrere Schritte auf einen Klick klicken

Ich habe eine Schaltfläche programmiert, die beim Anklicken dazu führt, dass eine Textansicht mit einer Animation aus dem Bildschirm streicht. Danach möchte ich, dass der alte Text ("Erster Text") der Textansicht durch einen anderen Text ("Neuer Text") ersetzt wird, der an derselben Stelle erscheint wie der alte Text. All dies sollte mit nur einem Klick auf die Schaltfläche Schritt für Schritt geschehen.

Mein Problem mit meinem Code ist, dass der alte Text zuerst durch den neuen Text ersetzt wird und dann die Animation verursacht.

Hat jemand jetzt eine Lösung für dieses Problem?

Ich wäre wirklich sehr dankbar für jede Hilfe!

Dies ist mein Code unten.

public class FirstActivity extends AppCompatActivity { 


    Animation slideleft; 
    Button btn1; 
    TextView txt1; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.first_layout); 

     btn1 = (Button) findViewById(R.id.btn1); 
     txt1 = (TextView) findViewById(R.id.txt1); 



     btn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       slideleft = AnimationUtils.loadAnimation(FirstActivity.this, R.anim.slide_left); 

       txt1.startAnimation(slideleft); 

       txt1.setText("New Text"); 

    } 
     }); 
    } 
} 

Antwort

0

können Sie onAnimationEnd Methode des Animationshörers verwenden und den Text darin ändern.

animation.setAnimationListener(new Animation.AnimationListener(){   
     @Override 
     public void onAnimationEnd(Animation anim) { 
      txt1 = (TextView) findViewById(R.id.txt1); 
      txt1.setText("New Text"); 
     } 
    }); 
+0

Vielen Dank platzieren können! Aber reicht es, OnAnimationEnd hinzuzufügen? Weil es bei mir nicht funktioniert hat. Ich musste das ganze Protokoll integrieren (onAnimationStart, onAnimationRepeat und onAnimationEnd). – LoveCoding

0

Sie die Veranstaltung aus, nachdem die Animation platzieren Sie den Code

anim.setAnimationListener(new Animation.AnimationListener(){ 
    @Override 
    public void onAnimationStart(Animation arg0) { 
    }   
    @Override 
    public void onAnimationRepeat(Animation arg0) { 
    }   
    @Override 
    public void onAnimationEnd(Animation arg0) { 
    //your_code 
    } 
}); 
+0

Ehrfürchtig. Ich habe schon viel über den Animationslistener gelesen, aber es scheint, als hätte ich es vorher falsch eingebaut. Aber es hat endlich funktioniert. Ich glaube, mein Fehler war, dass ich nicht das gesamte Protokoll (Animationsstart, Animationsrepeat und Animationsende), sondern nur das Animationsende einbezogen habe. Vielen Dank für Ihre Hilfe!:) – LoveCoding

Verwandte Themen