2011-01-11 73 views
0

我想設置列表視圖的第一個和最後一個元素,讓他們的背景與中間的所有內容不同。我創建了我的自定義適配器.xml文件,當我將所有內容靜態設置爲使每行都具有相同的樣式時,它完美地工作。截至目前,我只是想改變第一個元素。我想我得到了nullPointerException,因爲我沒有正確引用LinearLayout我想要更改背景。這裏是我的代碼:自定義列表視圖適配器nullPointer問題

for (int i = 0; i < categories.size(); i++){ 
      HashMap<String, String> map = new HashMap<String, String>(); 
      map.put("name", categories.get(i)); 
      LinearLayout linear = (LinearLayout)findViewById(R.id.linearLayout1); 
      if(i == 0){ 
       linear.setBackgroundResource(R.drawable.background); 
       Log.v("First Element", "First"); 
      } 
      else{ 
       linear.setBackgroundResource(R.drawable.background); 
       Log.v("Not First Element", "Not First"); 
      } 
      mylist.add(map); 
     } 

我想我的問題是,由於該R.id.linearLayout1引用不是在這個活動的主要xml文件,所以我怎麼得到正確的參考。如果情況並非如此,那麼我該如何去處理listView的頂部和最後一個元素的不同背景?

回答

0

您應該使用「充氣」來獲得您的佈局。

例子(如果我沒有記錯的話,能不能試一下這裏)

LinearLayout linear = activity.getViewInflate().inflate(linearLayout1,null, null); 
+0

感謝您的幫助,我真的不明白在這個例子中的單詞「活動」,雖然意思。當我將這行代碼放入我的代碼中時,它不會將其識別爲任何內容,並且希望我創建一個名爲「activity」的局部變量。 – SamRowley 2011-01-11 11:22:22

相關問題