2014-12-19 107 views
-2

問題: - 我想爲導航抽屜中的不同項目設置不同的菜單圖標。我知道如何設置項目的圖標,但我只能爲列表中的每個項目設置一個圖標。我想動態設置不同的圖標。動態設置抽屜菜單圖標

我的代碼是:

@Override 
public View getView(NLevelItem item) 
{ 
    View view = inflater.inflate(R.layout.drawer_list_item, null); 
    TextView tv = (TextView) view.findViewById(R.id.category); 
    TextView plusIcon = (TextView) view.findViewById(R.id.category_plus); 
    CategoryBean categoryBean = (CategoryBean) item.getWrappedObject(); 
    tv.setText(" "+categoryBean.getName()); 

    //here is where I set the Icon 
    tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.rsz_ic_home, 0,0, 0); 
    return view; 
} 

注: - 我使用n級菜單,所以我不想爲每個項目圖標。我只想要父項的圖標,因此我沒有在我的佈局中使用imageview。請幫幫我。

回答

1

這很容易。

您必須使用字符串數組來處理項目的名稱,並使用數組指定項目的圖標。顯然,您必須創建一個構造函數類來創建抽屜的每個項目。

我覺得這個教程會幫助你很多。

http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

+0

感謝您的回答!我也是這樣做的。 – Newinjava 2014-12-21 15:09:47

+0

不客氣。如果您有任何疑問,請告訴我。 – 2014-12-21 15:51:23

+0

@Marconi Vignoli我該怎麼做才能動態從服務器獲取這些圖標?我怎麼能這樣做? – Newinjava 2015-03-31 06:18:25

1

存儲在您的項目中繪製的ID以及在getView方法來獲得它的值:

@Override 
public View getView(NLevelItem item) 
{ 
    View view = inflater.inflate(R.layout.drawer_list_item, null); 
    TextView tv = (TextView) view.findViewById(R.id.category); 
    TextView plusIcon = (TextView) view.findViewById(R.id.category_plus); 
    CategoryBean categoryBean = (CategoryBean) item.getWrappedObject(); 
    tv.setText(" "+categoryBean.getName()); 

    //here is where I set the Icon 
    tv.setCompoundDrawablesWithIntrinsicBounds(item.getDrawableId(), 0,0, 0); 
    return view; 
} 
+0

用於獲取繪製ID,我需要先進行設定。我將如何設置它?我正在設置categorybean中的菜單值,我如何在categorybean中傳遞不同的圖標值?我是否需要將圖標ID存儲在某個集合或其他位置? – Newinjava 2014-12-19 11:53:34

+0

我該怎麼做才能從服務器動態獲取這些圖標?我怎麼能這樣做? – Newinjava 2015-03-31 06:19:16