使用ABS的弹出菜单

时间:2013-12-20 14:03:12

标签: android popup actionbarsherlock popupmenu

是否可以将POPUP菜单(如Play商店)附加到适配器的每一行 到目前为止我做了什么

holder.rl_overflow.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                PopupMenu popup = new PopupMenu(context, holder.rl_overflow);
                popup.getMenuInflater().inflate(R.menu.overflow, popup.getMenu());  

                popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        Toast.makeText(context,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show();
                        return false;
                    }
                });
                popup.show();

            }
        });

但是POPUP菜单的构造函数说它可以从API 11获得。我通过developers.android.com,我发现,它可以使用SUPPORT V7库“https://developer.android.com/reference/android/support/v7/widget/PopupMenu.html”添加,但我无法使用ABS实现这一点,请帮助别人。

2 个答案:

答案 0 :(得分:1)

如果您使用支持库,则应使用ABS 丢弃。而是将支持库导入到您的工作区中,该工作区可以在~/adt-bundle-linux-x86_64-20130729/sdk/extras/android/support/v7/appcompact中找到,并在项目中使用。此外,请不要忘记添加support library,可以直接点击您的项目并输入Android Tools -> Add Support Library

使用appcompact,您必须使用ActionBarActivity扩展您的活动类。并使用appcompact您必须在styles文件夹中进行更改。你可以参考this。不要忘记更新values-v11values-v14文件。完成所有这些操作将使您的应用程序兼容。

P.S。如果appcompact库中发生任何错误。不要惊慌失措地查看错误日志并打开似乎包含错误的文件。很可能你必须刷新文件,之后只需fix project properties,错误就会消失。

希望这有帮助:)

答案 1 :(得分:1)

ActionBarSherlock中使用此PopupMenu

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>