2012-11-23 96 views
3

我正在使用彈出菜單。 我想改變彈出式菜單的背景,但沒有找到辦法做到這一點。 我不希望警報對話框類型functonality。Android如何更改彈出式菜單項背景

我有一個按鈕和點擊偵聽器,我初始化一個彈出菜單。

 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。 我想更改彈出式菜單(不是按鈕)項目的背景。我該怎麼做?

回答

-1

也許你可以使用風格。

不知道確切的情況,但其中一個如果在你的主題中發生了變化,應該可以完成這項工作。將樣式背景更改爲您的自定義繪圖。

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

4

我解決了使用此代碼的問題:

+0

blog.stylingandroid.com幫我:

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

參考。謝謝Marcus。 – ASN