安卓如何改变弹出菜单项的背景

4

我正在使用弹出菜单。

我想改变弹出菜单的背景,但找不到实现方法。

我不希望使用警示框对话框的功能。

我有一个按钮,点击监听器会初始化一个弹出菜单。

        Button btn = (Button) findViewById(R.id.btn);

        OnClickListener listener = new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

                popup = new PopupMenu(getBaseContext(), v);
                popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
                popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {
                    public boolean onMenuItemClick(MenuItem arg0) {
                        // TODO Auto-generated method stub
                        return true;
                    }
                });
                popup.show();
            }
        };
        btn.setOnClickListener(listener);

在菜单文件夹中,我有一个名为popup.xml的文件。我想要改变弹出菜单项的背景颜色(不是按钮)。我该怎么做?
2个回答

5
我使用以下代码解决了这个问题:
Context wrapper = new ContextThemeWrapper(getContext(), R.style.PopupMenu);
PopupMenu popupMenu = new PopupMenu(wrapper, v);

reference: blog.stylingandroid.com


这对我很有帮助。谢谢马库斯。 - ASN

-1

可能可以使用样式。

不确定,但是如果在您的主题中更改其中一个应该可以完成工作。将样式中的背景更改为您自定义的可绘制对象。

<style name="AppTheme">
    <item name="android:listPopupWindowStyle">@style/yourPopupWindowStyle</item>
    <item name="android:popupMenuStyle">@style/yourPopupWindowStyle</item>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接