Meine App beginnt mit einem FragmentA. Ich möchte, dass FragmentA etwa 5 Sekunden lang angezeigt wird und dann ein weiteres FragmentB anzeigt, das FragmentA ersetzt.
Ich habe FragmentA angezeigt von:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentA frag = new FragmentA();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction().add(R.id.fl,frag);
ft.commit();
Ich bin mir nicht sicher, was ich danach tun soll.
3 Antworten
Rufen Sie zunächst die
getSupportFragmentManager().beginTransaction()
.replace(R.id.fl, new FragmentA())
.commit();
Und danach fügen Sie Folgendes hinzu:
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
//Second fragment after 5 seconds appears
getSupportFragmentManager().beginTransaction()
.replace(R.id.fl, new FragmentB())
.commit();
}
};
handler.postDelayed(runnable, 5000);
Update: Entfernen Sie einfach die ausführbare Datei aus dem Handler, um zu verhindern, dass die ausführbare Datei ausgeführt wird, nachdem die Aktivität zerstört wurde.
@Override
public void onDestroy () {
handler.removeCallbacks(runnable);
super.onDestroy();
}
Wenn Sie nach einer Verzögerung Code ausführen müssen, verwenden Sie Handler. Beispiel:
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
hideFragmentA();
showFragmentB();
}
}, 5000)
Wobei 5000 - Verzögerung in Millisekunden
Verwenden Sie das folgende Codefragment für den Fragmentersatz:
FragmentB fragmentB= new FragmentB();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fl, fragmentB)
.commit();
Wenn Sie das Fragment nach 5 Sekunden ersetzen müssen, planen Sie einfach ein Ereignis / eine Aufgabe für 5 Sekunden. Wenn die Zeit abgelaufen ist, müssen Sie nur das Ersetzen durchführen.
Neue Fragen
android
Android ist Googles mobiles Betriebssystem, mit dem digitale Geräte (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) programmiert oder entwickelt werden. Verwenden Sie für Themen im Zusammenhang mit Android Android-spezifische Tags wie Android-Intent, Android-Aktivität, Android-Adapter usw. Verwenden Sie für andere Fragen als Entwicklung oder Programmierung, die sich jedoch auf das Android-Framework beziehen, diesen Link: https: // android.stackexchange.com.