2011-07-23 355 views
0

我有一個列表視圖,我需要一個changue項的背景顏色,例如項目2如何以編程方式改變listview項目的背景顏色?

我與此代碼tryed但它崩潰,因爲第三行給出NullPointerException異常,但名單富人11個項目!我不明白問題出在哪裏

CalendarList = (ListView) findViewById(R.id.CalendarList); 
CalendarList.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, MyApplication.roundMatches(CalendarPicker.getValue()))); 
CalendarList.getChildAt(2).setBackgroundColor(0xFFFF0000); 
+0

請張貼摘錄如下您的活動代碼,我會看一看。 –

回答

0

最後這些解決方案的工作,我這樣做是通過不同的方式,改變文本的顏色和沒有背景

0

的問題是,所述的ListView是高度優化僅創建所需的觀點將被實際顯示在屏幕上。所以,getChildAt()將爲尚未創建的行返回null。只需檢查getChildAt()的空返回。如果第2行(在這種情況下)還不存在,它將在行被充滿時(使用getView(),bindView()等)創建。您可以在此時設置適當的顏色。

0

您應該使用setBackgroundResource(R.color.myRow_red)而不是setBackgroundColor()。在您的示例中,背景顏色使用ID分配,而不是資源中描述的實際顏色。但首先,您應該檢查getChildAt()是否已爲創建的行返回null?你申請前setBackgroundColor()

+0

如何創建背景顏色?如何使用該資源的XML?你可以給我的XML代碼?和,我必須把那個XML? – NullPointerException

+0

<?XML版本= 「1.0」 編碼= 「UTF-8」?> <顏色名= 「背景」>#3500ffff \t <顏色名= 「transparent_blue」>#80004488 ...... .. <顏色名= 「黑」>#FF000000 <顏色名= 「darker_gray」>#ffaaaaaa <顏色名= 「白色」>#FFFFFFFF Android

+0

和RES /值內此XML文件/ color(這裏color.xml是具有上述元素的文件名,意味着顏色名稱和值) – Android

相關問題