Ich habe diese PopupMenu in meiner Anwendung und möchte wissen, wann es geschlossen ist. Mit API14 + ist dies einfach, wenn Sie einen Ablehnungslistener mit setOnDismissListener()
hinzufügen. Aber ich muss wissen, wenn das PopupMenu von API11 + geschlossen ist, so kann ich den Listener nicht verwenden und brauche eine Alternative für den Listener.Erkennen, dass ein PopupMenu auf API-Ebene 11 geschlossen ist
Das habe ich versucht, bereits zu:
- Überschreibung der
dismiss()
Methode des PopupMenu, aber es wird nicht aufgerufen, wenn es geschlossen ist. - Verwenden Sie die
PopupMenu.OnMenuItemClickListener
, aber es wird nicht aktiviert, wenn der Benutzer außerhalb des Menüs geklickt hat (um es zu schließen) oder klickt auf "zurück".
Ich habe keine anderen Ideen zu erkennen, dass das Menü geschlossen war. Ich hoffe also, dass jemand anders einen cleveren Trick hat. Ansonsten kann ich nicht verwenden PopupMenu ...
Ein bisschen hacky, aber können Sie einen 'OnFocusChangeListener' aus der zugrunde liegenden Ansicht oder Viewgroup setzen? Ich bin mir nicht sicher, ob es feuern wird, um ehrlich zu sein, aber es ist das erste, was mir einfällt. Ansonsten könntest du 3 Punkte hören (menuItemClick, back button, onTouch of contentView), aber ich bin mir sicher, dass es etwas besseres geben muss. – Geobits
@Geobits Danke für deine Idee (ich hatte nicht daran gedacht). Aber die Verwendung des 'OnFocusChangeListener' funktioniert leider nicht. Ich habe nur eine Ansicht (auf der ich meine UI zeichne), und es scheint nicht, dass es jemals den Fokus bekommt (oder verliert) es ... – Veger