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% Sie zeigen nicht, wo Sie Toast address
als global haben, aber Sie erstellen jedes Mal ein neues lokales Toast-Objekt, wenn Sie auf klicken:
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%Tags und Links android google-maps toast