Android - Alle angezeigten Toast-Nachrichten ausblenden
Wie Entferne ich alle toast-Nachrichten, die momentan angezeigt?
In meiner App gibt es eine Liste, wenn ein Benutzer klickt auf ein Objekt, eine toast-Nachricht angezeigt wird,
10 Gegenstände - 10 toast-Nachrichten.
So, wenn der Benutzer klickt 10 mal, dann drückt man die Menü-Taste, müssen Sie warten für einige Sekunden, bis Sie in der Lage sind zu Lesen, die Menü-option text.
Sollte es nicht so sein 🙂
InformationsquelleAutor der Frage crazyV | 2010-05-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Lösung war zum initialisieren einer einzigen Toast in der Aktivität. Dann ändern Sie seine text bei jedem Klick.
InformationsquelleAutor der Antwort Mudar
Stornieren können Sie einzelne
Toasts
durch den Aufrufcancel()
auf dieToast
Objekt. AFAIK, es gibt keine Möglichkeit für Sie, brechen Sie alle ausstehendenToasts
obwohl.InformationsquelleAutor der Antwort CommonsWare
Was ist mit der überprüfung, ob ein toast ist schon angezeigt wird?
InformationsquelleAutor der Antwort Justin Muller
Mudar, der die Lösung hat wunderbar funktioniert bei mir auf ein ähnliches problem - ich hatte verschiedene toasts und stapeln sich in einen Rückstand, nachdem mehrere
button
Klicks.Einer Instanz von Toast mit verschiedenen
setText()s
undshow()
s war genau die Antwort, die ich suchte - Vorherige Nachricht annulliert, sobald eine neue Schaltfläche geklickt wird. Spot onNur als Referenz, hier ist, was ich getan habe...
In
OnCreate
:Innerhalb jedes
OnClick
:InformationsquelleAutor der Antwort BasicPleasureModel
Ich glaube, ich fand einen Weg, um Toast-Nachricht nicht die Warteschlange für mich. Dachte, ich würde teilen.
diesem Teil geht an der Spitze.
Dieser Teil geht in meinen setOnTouchListener()
Es ist mehr ein hack als alles andere. Aber ich zeige eine toast-Nachricht jedes mal, wenn jemand Favoriten einen Teil meiner app. Und wenn Sie verrückt Klick auf den Favoriten-button wird es verrückt mit den Toast-Nachrichten. Aber jetzt nicht mehr. Es wird 2 Sekunden warten und dann mein toast Objekt auf null und lassen Sie ihn erneut anzeigen.
InformationsquelleAutor der Antwort S.A.Jay
Meine Lösung ist, um zu speichern Sie alle toast-Referenzen in einer Liste und treffen Sie eine Methode, um abzubrechen, wenn Sie es brauchen:
Wenn Sie erstellen einen Toast zu tun auf diese Weise, und speichern Sie die Referenz:
Wenn Sie brauchen, um Sie zu löschen:
Können Sie erstellen, die diese wie eine statische Methode in einer globalen Klasse und verwenden Sie es, zu töten alle die toast von der app.
InformationsquelleAutor der Antwort user23
Hier ist meine einfache Antwort auf das problem:
Erste in Ihrer Tätigkeit erstellen Sie eine Globale
Toast
Objekt.Nun, Wann immer Sie wollen, nennen Sie eine neue Toast-Nachricht nur dazu:
Dieser hält alle Toasts in einer zentralen, Toast und entfernt Toast spam. Dies ist eine schnelle grobe Lösung so vielleicht gibt es eine elegantere Art und Weise, es zu tun.
InformationsquelleAutor der Antwort Roymunson
Dies ist, wie ich es mache.
InformationsquelleAutor der Antwort Victor Odiah
InformationsquelleAutor der Antwort balu
Können Sie verwenden, wie diese..
InformationsquelleAutor der Antwort İlter Engin KIZILGÜN
Mit Madur ausgezeichnete Antwort oben, erweiterte ich diese in einer Klasse, die würde sich mit verschiedenen Arten von Nachrichten:
Genannt wird Sie aus meiner Haupt-Tätigkeit:
Den Grund für die Klassifizierung der Nachrichten ist, stellen Sie sicher, dass keine wichtigen Nachrichten überschrieben werden. Diese Lösung scheint einfach wiederverwenden, da es nur um die Umbenennung des Toasts und der Funktion von Namen.
Wenn der Benutzer Spam-Mails, die Taste, der toast wird brechen Sie einfach jedes mal für den gleichen message-Typ. Das problem ist nur, wenn der Anwender kann spam eine Mischung von Nachrichten. Dies führt zu der ersten Nachricht zu wiederholen, und sobald es endlich erlischt die anderen Nachrichten zeigt. Nicht wirklich ein großes problem, aber etwas bewusst zu sein.
Habe ich noch nicht untersuchte mögliche Nachteile des habens mehrere Toast-Instanzen.
InformationsquelleAutor der Antwort David
In meiner app, in der Warteschlange toasts, die immer wieder auftauchen, wenn die app geht in den hintergrund, so habe ich Folgendes um das problem zu lösen.
Hinzufügen von code zu erkennen, wenn die app geht in den hintergrund. Eine Möglichkeit zum registrieren life-cycle-handler. Für Mehr detail ref
App.inBackground = true;
wenn die app geht in den hintergrund und zeigen toast mit SmartToast Klassecall
SmartToast.cancelAll();
Methode, bei der app geht in den hintergrund blenden Sie die aktuellen und alle ausstehenden Toast. Code ist Spaß. Genießen Sie!InformationsquelleAutor der Antwort Qamar
Erstellen Sie eine Toast-Objekt außerhalb
onClick
- Funktion und verwenden Sie den folgenden code ein.Es wird stop-alle vorhandenen Toast und starten Sie die neueste Toast.
InformationsquelleAutor der Antwort Akash Gupta
Wie über diese !?
und bei onPause()
InformationsquelleAutor der Antwort Pramod P K
Hier ist, wie zu deaktivieren Sie die toast-Nachrichten, entfernen Sie
show()
Ausdruck.InformationsquelleAutor der Antwort SKf