2012-08-24 80 views
2

我創建了一個自定義適配器具有自定義視圖列表視圖。現在如何在ListView onClick中更改Android項目的樣式?

我想改變列表視圖項的背景(佈局的背景色中的項目的自定義視圖),因爲我按下一個按鈕。

它甚至有可能?是否可以一次更改所有的listview項目,或者我必須逐個更改?

+0

訪問線程http://stackoverflow.com/questions/12107440/onlistviewitemclick-view-argument-refer-to-multiple-listitems/12107917#12107917 –

+0

正如我所說。我沒有點擊該項目。我點擊一個按鈕。因此,我沒有收到「視圖」實例的項目。 –

回答

0

嘗試這樣的事情

ListView mView; 
... 
int c = mView.getChildCount() 
for(int i = 0; i < c; i++){ 
    View v = mView.getChildAt(i); 
    v.setBackgroundColor(color); 
} 

據我所知是沒有辦法來爲所有子視圖的顏色。如果可以的話,仍然會在後臺對所有視圖進行迭代。

+0

是的。我也在考慮這個問題。我想這是唯一的選擇。 –

0

如果你已經使用「customview」然後就綁定在自定義適配器的customview的元素(如:按鈕),並設置的onclick聽衆爲他們誇大了「listItems中」。

你可以參考這個:preserve state of elements inside listview's each row

在我的自定義適配器,我已經綁定TextView的1和2個按鈕我的自定義視圖,然後點擊監聽器來實現。

我希望這將是有益的。

0

或者以遍歷所有的孩子,你可以在粘合劑中的顏色變化,並迫使ListView控件(通過適配器的數據變化的方法)來重新綁定物品。這樣,你不會在ListView的視圖層次結構中插入內容,這通常被認爲是非常糟糕的做法。

+0

你能舉個例子嗎? –

相關問題