Die Klasse MenuPopupHelper so ziemlich macht den Job. Ich habe keine einfache Möglichkeit gefunden, auf Item Clicks zu warten, also habe ich diese Klasse implementiert, die von MenuPopupHelper abgeleitet ist:
%Vor% Hinzugefügt PopupMenu
in ActionBarSherlock .
Styling der PopupMenu
-
Ich arbeite gerade daran. Ich habe getan, was von CommonsWare vorgeschlagen wurde, um es zu portieren. Ich nahm im Grunde den PopupMenu.java-Quellcode und ersetzte die Paketimporte durch die actionbarsherlock-Entsprechungen. Es scheint gut zu funktionieren auf den Lebkuchen- und ics-Geräten, die ich getestet habe. Der catch ist jedoch in actionbarsherlocks MenuPopupHelper-Klasse Ich musste Zeilen kommentieren, die View_HasStateListenerSupport wie:
verweisen %Vor%aus irgendeinem Grund. Wenn ich nicht würde, würde ich eine ClassCastException bekommen:
E / AndroidRuntime (9197): FATALE AUSNAHME: Haupt E / AndroidRuntime (9197): java.lang.ClassCastException: android.widget.Button kann nicht in com.actionbarsherlock.internal.view.View_HasStateListenerSupport umgewandelt werden E / AndroidRuntime (9197): unter com.actionbarsherlock.internal.view.menu.MenuPopupHelper.tryShow (MenuPopupHelper.java:121) E / AndroidRuntime (9197): unter com.actionbarsherlock.internal.view.menu.MenuPopupHelper.show (MenuPopupHelper.java:102)
Ich bin nicht sicher, ob das Auskommentieren des Listeners Probleme für andere Klassen verursachen könnte, die MenuPopupHelper benutzen oder warum sie diese Ausnahme verursachen (vielleicht ein Bug). Aber ich dachte, ich würde teilen, was ich versuchte, damit es jedem helfen kann, sich damit zu beschäftigen.
Tags und Links android actionbarsherlock