Abbrechen eines bereits geöffneten Toasts in Android

8

Ich fange gerade an, Android-Anwendungen zu entwickeln, und ich habe eine dieses Tutorial zur Verwendung und Verbesserung der Google Maps-Anwendung.

Ich habe es geschafft, die Karte auf dem Bildschirm zu zeigen, bei Berührung erhalte ich die Adresse eines Ortes (via Reverse Geocoding) mit der Anzeige eines Toast . Aber hier ist mein Problem - wenn Sie mehrere aufeinanderfolgende Male auf der Karte klicken, erhalten Sie alle toasts nacheinander und jeder von ihnen braucht seine Zeit (in meinem Fall - Toast.LENGTH_LONG ), um zu verschwinden. Ich möchte, dass die Anwendung automatisch den älteren Toast schließt und einen neuen Toast mit der neuen Adresse anzeigt.

In anderen Ressourcen habe ich gefunden, dass ich die toast.cancel() -Methode für diesen Zweck verwenden sollte, aber ich erfahre Probleme damit - ich habe bereits onTouchEvent übergangen - wie kann ich erkennen, dass es eine neue Berührung über der Karte gibt während der toast wird angezeigt? Oder würdest du mir vielleicht eine bessere Möglichkeit vorschlagen, das bereits geöffnete toast zu verstecken?

Ich habe versucht, meine Toast -Adresse global zu machen, aber es hat auch nicht funktioniert.

Hier ist mein Code für die Anwendung:

%Vor%     
Stefan Doychev 19.07.2011, 08:14
quelle

2 Antworten

22

Sie zeigen nicht, wo Sie Toast address als global haben, aber Sie erstellen jedes Mal ein neues lokales Toast-Objekt, wenn Sie auf klicken:

%Vor%

Dies überschreibt das globale Objekt, das Sie erstellen. Ich würde empfehlen, address als private static -Objekt in Ihrer Klasse zu haben, um sicherzustellen, dass die Adresse immer das selbe Objekt ist, egal wie oft Sie klicken, so dass Sie immer die Toast abbrechen, die Sie zuletzt gezeigt haben (seit es gibt immer nur einen), und entferne die lokale Deklaration:

%Vor%

...

%Vor%     
RivieraKid 19.07.2011, 08:24
quelle
1

Sie müssen Instanz erhalten, wenn Sie Toast durch Aufruf make () erstellen. Danach, bevor Sie neuen Toast zeigen, sollten Sie alten Toast.GoodLuck abbrechen!

    
duonghv 19.07.2011 08:25
quelle

Tags und Links