ActionBarSherlockに相当するPopupMenuとは何ですか?私はそれを見つけるように見えない。そのAPI 11、それはなぜ不在ですか?ActionBarSherlockに相当するPopupMenu
答えて
クラスMenuPopupHelperはかなり仕事をします。でも、私はアイテムのクリック数をリッスンする簡単な方法を見つけることができませんでしたので、私はMenuPopupHelperから派生し、このクラスに実装:
public class MenuPopup extends MenuPopupHelper {
OnMenuItemClickListener onMenuItemClickListener;
public MenuPopup(Context context, MenuBuilder menu, View anchorView) {
super(context, menu, anchorView);
}
public void setOnMenuItemClickListener(
OnMenuItemClickListener onMenuItemClickListener) {
this.onMenuItemClickListener = onMenuItemClickListener;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
super.onItemClick(parent, view, position, id);
if (onMenuItemClickListener != null)
onMenuItemClickListener.onMenuItemClick(position);
}
public interface OnMenuItemClickListener{
public void onMenuItemClick(int itemID);
}
}
このソリューションは、anchorViewビューオブジェクトがAcctionBarSherlockに必要なView_OnAttachStateChangeListenerインターフェイスを実装する必要があるため、完璧ではありません。 –
'View'を' View_HasStateListenerSupport'インターフェースを実装するのはかなり簡単です。実装の例はここにあります:https://github.com/JakeWharton/ActionBarSherlock/blob/master/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/ActionMenuItemView.java –
私はこの仕事をすることができません: – Javier
私は現在、これに取り組んでいます。 CommonsWareがバックポートすることについて私が提案したことをしました。私は基本的にPopupMenu.javaソースコードを取り出し、パッケージのインポートをactionbarsherlockに置き換えました。私がテストしたジンジャーブレッドとicsのデバイスでうまく動作しているようです。何らかの理由で
((View_HasStateListenerSupport)anchor).addOnAttachStateChangeListener(this);
:キャッチは、しかし、私は同じようView_HasStateListenerSupportを参照する行をコメントしていたactionbarsherlocks MenuPopupHelperクラスです。
E/AndroidRuntime(9197):致命的な例外:メイン はE/AndroidRuntime(9197):java.lang.ClassCastExceptionが:android.widget.Buttonをキャストすることができない私はしなかった場合、私はClassCastExceptionがなるだろうcom.actionbarsherlock.internal.view.View_HasStateListenerSupportへ E /(9197)AndroidRuntime:com.actionbarsherlock.internal.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:121) E/AndroidRuntime(9197)で:COMで。 actionbarsherlock.internal.view.menu.MenuPopupHelper.show(MenuPopupHelper.java:102)
そのリスナーをコメントアウトすると、PR引き起こす可能性がある場合、私はわかりませんよMenuPopupHelperを利用する他のクラスのoblems、またはなぜこの例外を引き起こしているのか(おそらくバグ)。しかし、私が試したことを分かち合うと思ったので、これを調べている人を助けるかもしれません。
PopupMenu
をActionBarSherlockに追加しました。 PopupMenu
の
スタイリング -
<item name="popupMenuStyle">@style/PopupMenu.MyAppTheme</item>
<style name="PopupMenu.MyAppTheme" parent="@style/Widget.Sherlock.ListPopupWindow">
<item name="android:popupBackground">@android:color/white</item>
</style>
- 1. INET_NTOAとINET_ATONに相当するPHP相当額
- 2. Jythonに相当するIronClad
- 3. Visioに相当する3D
- 4. omp_get_thread_numに相当するグランドセントラルディスパッチ
- 5. ManualResetEventに相当するBoost?
- 6. イメージレンダリングDOMに相当する
- 7. 'pat2cwav'に相当するPython
- 8. javacに相当する「-D」?
- 9. VBA:GoalSeek C#に相当する
- 10. clipsToBoundsに相当するスプライトキット:
- 11. MethodBase.GetCurrentMethodに相当するポータブルクラスライブラリ
- 12. OSXに相当するShellExecute?
- 13. XDialogに相当するクロスプラットフォーム
- 14. find2perlに相当するPython
- 15. Spring RestTemplateに相当する
- 16. XmlAttributes.XmlIgnore XAMLに相当する
- 17. Jstackに相当するPython?
- 18. DataContractsに相当するXmlTextAttribute
- 19. shuaに相当するLua?
- 20. PyGtkに相当するgdk_window_ensure_native?
- 21. "Not MyEnum.SomeValue"に相当する#
- 22. Rubyに相当するPython "_"
- 23. $( 'body')に相当するJavascript
- 24. Django ORMに相当する
- 25. Pythonに相当するPropertyUtilsBean
- 26. Javaに相当するSystem.Xml.XmlNode.InnerXml
- 27. jQueryに相当するYUI.getElementsBy
- 28. Perlの$に相当する$ _
- 29. JObject.SelectToken .NETに相当する
- 30. db.repairDatabase()に相当するC#
私の知る限りでは、 'PopupMenu'は、アクションバーのために必要とされていません。 ActionBarSherlockは* everything *のバックポートではありません。 – CommonsWare
また、少なくとも1つの(汎用ではない)[PopupMenu']のバックポートがあります(http://code.google.com/p/openintents/source/browse/trunk/shoppinglist/ShoppingList/src/org /openintents/shopping/ui/widget/backport/PopupMenu.java?r=3810)、アンドロイドポップアップメニューバックポートのGoogle検索の最初のページにあるので、AOSPソースを取得してバックポートしようと考えるかもしれません。 – CommonsWare