Comment annuler un Toast
J'ai développé une application android et je suis confronté à un problème avec Toast
.
Supposons que je suis l'affichage d'un Toast, il est affiché sur la fenêtre de l'application.
Lorsqu'une boîte de Dialogue s'affiche, le toast ne disparaît pas instantanément .
Je veux savoir comment je peux annuler le toast.
- La sauvegarde de ce @EboMike a dit dans sa réponse, j'ai eu du succès avec mon
Boast.java
résumé de la dernière quelques années - Boast.java sur Github
Vous devez vous connecter pour publier un commentaire.
Toast.makeText
renvoie uneToast
objet. Appelcancel()
sur cet objet pour l'annuler.Toast t = Toast.makeText(this,"Toasttext",Toast.LENGTH_LONG);
Montrer le pain grillé avec de lat.show();
. Ensuite, vous pouvez annuler le Toast en appelantt.cancel();
La plus courte durée que vous pouvez spécifier pour le toast est
Toast.LENGTH_SHORT
qui a une valeur de0
, mais est en fait2000 milliseconds long
. Si vous voulez plus que cela, alors essayez ceci:Je pense qu'il n'est pas nécessaire de créer un toast.
Créer une seule instance de la
Toast
classe. Nous venons de définir le texte du toast à l'aide detoast.setText("string")
, et d'appelertoast.cancel()
méthode dansonDestroy()
méthode.De travail extrait de code comme suit:
Espère que cette utile pour vous..
Utiliser la méthode d'annulation de tost : pain grillé.annuler();
C'est un exemple de base à l'aide de la
cancel()
méthode deToast
.Ok, moi aussi, je suis en train d'annuler un Toast, et ne pouvez pas sembler obtenir
le bouton cancel() appeler pour obtenir invoquée dans l'Activité.onDestroy()
ou de l'Activité.onStop(), etc. Après quelques API-doc de la lecture et de
googler d'autres personnes ayant besoin d'aide pour obtenir des Toasts annulée,
Je pense que je ne suis pas encore au clair sur les Activités arrêtée,
en pause, détruit. J'ai besoin d'un moyen sûr et certain de la force de mon activité
pour obtenir suspendu ou arrêté.
Dans mon cas précis, il n'y a que de courte et de longue
la durée des Toasts, j'ai décidé d'effectuer une itération d'une boucle 5 fois
un show() sur une très longue durée de pain grillé, de sorte qu'il resterait à l'écran
pour les 15 à 20 secondes. Qui fonctionne très bien!
Mais, l'inconvénient (effets secondaires négatifs) de l'utilisation d'un Toast objet
c'est qu'ils persistent même APRÈS que l'utilisateur abandonne votre application et
remonte à l'accueil de l'écran et commence à utiliser une autre application...votre
toast va vivre pour les 15 à 20 prochaines secondes, sauf si vous
peux vous garantir que vous pouvez trouver un endroit (d'une certaine façon) à
invoquer annuler(). Aussi, vous devez croire que Android va
l'honneur de votre appel pour annuler() !
Alors, à la fin, j'ai été à peaufiner ma boucle simple, en essayant de
invoquer annule droite dans la boucle, et prouver à moi-même il
l'honneur d'un annuler l'appel, et visuellement se comporter comme prévu.
Extrait de Code:
Remarque: "toast" est une variable d'INSTANCE publique, de sorte que nous
avoir qu'UNE seule instance de l'Toast-objet [ comme
recommandé ci-dessus, et qu'un intervenant a confirmé
travaillait il y a deux ans, en Activité onStop() et OnDestroy() ]
Ok, la boucle d'origine contenues juste une ligne de faire le spectacle.
Qui fonctionne par lui-même.
Mais à l'expérience, j'ai ajouté ces quatre prochaines lignes, de dormir pendant environ
à moitié chemin à travers le 3.5 deuxième indice, puis l'annuler, dormir à nouveau
pour une seconde et demi, et puis re-créer et afficher le Toast de nouveau.
J'attend de voir le toast pour environ 1,5 secondes, puis de la voir disparaître,
et de revenir dans un autre de 1,5 secondes, etc.
Devinez quoi...le toast n'apparaît jamais À TOUS!
Ok, je suis en total mumble-mode...ce qui me manque, en
de la compréhension à l'intérieur de l'mystères de la façon dont le Toast de classe
est mis en place et est censé se comporter?
Et, de retour à ma première question: la meilleure Façon d'obtenir mon
Activité pour aller en pause ou arrêté?
[ Note: j'ai LU sur ce forum BEAUCOUP...c'est génial !!! C'est mon premier poste
au moyen d'un fil de la discussion...Désolé de ma réponse
est se marqué comme une RÉPONSE, plutôt que comme une QUESTION relative
à ce fil du sujet. ]