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. .NETに相当するjava.awt.color.ColorSpace
- 3. Pythonに相当するPropertyUtilsBean
- 4. PowerThellに相当するSignTool.exe
- 5. カールC#に相当する
- 6. omp_get_thread_numに相当するグランドセントラルディスパッチ
- 7. イメージレンダリングDOMに相当する
- 8. '__builtin_return_address'に相当するMSVC
- 9. grepに相当するstringr
- 10. HTML5コンテキストメニューに相当する
- 11. R ++に相当するC++
- 12. PrintWriterに相当するSystem.setOut()
- 13. jQueryに相当するプロトタイプ
- 14. XDialogに相当するクロスプラットフォーム
- 15. IntelliJに相当するWindowBuilder?
- 16. "Not MyEnum.SomeValue"に相当する#
- 17. Html.Actionに相当するSDK
- 18. C++に相当する。cin.peek()
- 19. Visioに相当する3D
- 20. ManualResetEventに相当するBoost?
- 21. QFormQuay2に相当するQFormLayout?
- 22. API17に相当するScriptIntrinsicBLAS
- 23. Javaに相当するSystem.Xml.XmlNode.InnerXml
- 24. Jstackに相当するPython?
- 25. Pyspark Pyodbcに相当する?
- 26. htmlentities()に相当するPerl
- 27. efibootmgrに相当するWindows?
- 28. MethodBase.GetCurrentMethodに相当するポータブルクラスライブラリ
- 29. SDO_GEOMETRY Postgresqlに相当する
- 30. peedas.mergeに相当するディードル
私の知る限りでは、 '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