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

おそらくスタイルを使用できます。

正確にはわかりませんが、テーマが変更された場合、それらの1つが機能するはずです。スタイルの背景をカスタム ドローアブルに変更します。

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

于 2013-02-07T07:04:38.447 に答える