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。我想改变弹出菜单项目的背景(不是按钮)。我该怎么做?

4

2 回答 2

5

我用这段代码解决了这个问题:

Context wrapper = new ContextThemeWrapper(getContext(), R.style.PopupMenu);
PopupMenu popupMenu = new PopupMenu(wrapper, v);

参考:blog.stylingandroid.com

于 2014-06-18T18:51:29.570 回答
-1

可能您可以使用样式。

不确切知道,但如果您的主题发生变化,其中一个应该可以完成这项工作。将样式中的背景更改为您的自定义可绘制对象。

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

于 2013-02-07T07:04:38.447 回答