2012-10-30 121 views
1

我在我的android應用程序中有一個列表。列表項是自定義對象,根據自定義對象屬性,列表項顏色將被決定。Android中多色列表的列表選擇器

現在的問題是,當我爲這樣的列表選擇任何項目時,不會顯示列表選擇器。

我該如何解決這個問題?要設置列表項顏色,我在適配器中使用以下方法。

convertView.setBackgroundColor(Color.LTGRAY

這是設置顏色的正確方法?如果不是我可以使用的其他東西。

在此先感謝。

Swapnil Dalal。

+0

你想使用不同的顏色或使用相同的顏色作爲列表選擇器嗎? –

+0

把你的適配器代碼在這裏......你快速回答 –

+0

我的答案是否解決了你的問題,如果是的話,請承認它。 – dreamtale

回答

0

請添加您的getView方法代碼,以便我們可以更好地爲您提供幫助。我們所做的一個常見錯誤是,我們並不總是爲列表視圖中的每個項目創建新視圖來加載不同的佈局列表項目。

爲相同itemed列表例如常用的方法:

if(view == null) 
{ 
    vi = inflater.inflate(R.layout.fb_list_row, parent, false); 
} 

雖然您需要刪除不同對象的列表視圖項,如果這樣的說法;

vi = inflater.inflate(R.layout.fb_list_row, parent, false); 

然後再做改變每個列表項..

希望這會有所幫助。否則再放一些代碼。

1

可以通過兩種方式解決這個問題:

1 .WRITE爲其設置在按壓狀態背景,以透明的ItemView控件的選擇器,然後設置選擇器作爲ItemView控件的backgound。

<item android:state_enabled="true" 
     android:state_pressed="false" 
     android:drawable="@color/gray" /> 

<item android:state_enabled="true" 
     android:state_pressed="true" 
     android:drawable="@color/transparent" /> 

2卸下襬臂的listselector,只寫有你在不同的國家想要的顏色ItemView控件選擇,並將其設置爲ItemView控件的背景。

0

我得到了這個問題的解決方案,

我創建了不同的XML文件中的應用程序不同的對象。 所以在適配器的getView中,根據條件我們可以加載其中一個xml。

實施例:

`if(true) { 
    convertView.setBackgroundResource(R.drawable.firstxml); 
} 
else { 
    convertView.setBackgroundResource(R.drawable.secondxml); 
}` 

在這些個XML,根據需要我們可以指定顏色。

實施例:

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="false" 
     android:drawable="@color/transperent"/>  
    <item 
     android:state_pressed="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/listview_selector" /> 
</selector> 

謝謝,

Swapnil達拉爾。