android fragment nach bestimmter zeit durch anderes ersetzen

  • Antworten:9
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 65

22.04.2015, 07:16:30 via Website

moin!

wie ersetze ich ein fragment nach einer bestimmten zeit automatisch durch ein anderes?

das fragment wird in meiner mainactivity dynamisch erzeugt!

gruss yeyk

Antworten
  • Forum-Beiträge: 65

22.04.2015, 07:32:09 via Website

also mit countdown(5000) zum beispiel???

weil mit sleep(5000) funktioniert es nicht!!

Antworten
  • Forum-Beiträge: 756

22.04.2015, 07:46:40 via App

Würde es über die Systemzeit machen - da sparst dir einen Timer und ist sicherlich auch genau genug...

Antworten
  • Forum-Beiträge: 65

22.04.2015, 07:56:17 via Website

und wie bewerkstellige ich das?

hast du ein codesnippet für mich?

sorry aber bei dem thema steh ich noch am anfang!

Antworten
  • Forum-Beiträge: 2.492

22.04.2015, 08:06:14 via App

Beim CountdownTimer ist die Syntax in etwa so falls es nicht stimmt musst du nochmal eben googlen:
CountDownTimer cd = new CountDownTimer (Dauer, 1000){
Public void onTick(Long millisUntilFinished){}
Public void onFinish(){
//Fragment ersetzen
}
}.Start();
also Dauer ist die Zeit die du warten willst und die 1000 bedeutet, dass er in 1000millisekunden (=1 Sekunde) runterzählt.

Antworten
  • Forum-Beiträge: 65

22.04.2015, 08:12:55 via Website

danke schonmal

werde ich nach der arbeit direkt mal probieren :)

Antworten
  • Forum-Beiträge: 2.243

22.04.2015, 09:58:26 via Website

Eigentlich macht man solche Dinge eher mit einem Handler.
Die "ticks" des Coundown-Timers sind ja nur unnötiger Overhead, wenn es um eine einmalige Aktion geht.

Handler handler = new Handler();
Runnable r = new Runnable() {
    public void run() {
        switchFragment();
    }
};
handler.postDelayed(r, 10000);

Das ist jetzt mal aus dem Kopf geschrieben, keine Garantie auf 100% syntaktische Korrektheit.

Achja:
Thread.sleep() sollte man (wenn überhaupt) nur einsetzen, wenn man sicher ist nicht im UI Thread zu sein.
In diesem Fall würde man aber den UI Thread blockieren und im schlimmsten Fall kommt dann die schöne Systemmeldung "Diese Anwendung reagiert nicht..."
Also: DON'T DO IT ! Es gibt in der Regel IMMER einen besseren Weg als aktives Warten.

— geändert am 22.04.2015, 10:02:15

Antworten
  • Forum-Beiträge: 65

27.04.2015, 06:07:02 via Website

Danke für die zahlreiche Hilfe!

Habs jetzt mit einem Handler hinbekommen!

Mit freundlichem Gruß

Antworten

Empfohlene Artikel