2010-10-08 80 views
5

我有一個列表視圖。在該列表視圖中,我必須灰化並禁用某些項目,並使用單獨的顏色啓用其餘列表項目。這個怎麼做?禁用和變灰列表項目

+0

你如何生成列表?以編程方式在Java活動內部還是使用XML資源? – methode 2010-10-08 07:58:55

回答

5

您應該爲ListView編寫一個擴展BaseAdapter的自定義適配器。要禁用某些項目,您必須在此適配器中重寫「boolean isEnabled(int position)」,並且對於您希望禁用的每個位置都返回false。

至於更改某些列表元素的背景顏色:您可以將背景顏色值存儲在您顯示的數據結構中。在您的自定義適配器的'getView()'方法中,您應該檢查當前元素的該顏色值,並返回具有正確背景顏色集的視圖。

或者您可以在ListView上調用'getChildAt()',獲取列表中所需元素的視圖對象,並更改其背景色。我想我寧願使用以前的解決方案。

記得在你做這樣的更改後,在你的ListView的適配器上調用'notifyDataSetChanged()'。

+0

thanx很多!!!工作! – mdv 2010-10-11 05:33:04