2012-10-25 64 views
1

我有一個自定義適配器列表視圖。在每一行中,我有2個文字瀏覽和一個按鈕。我希望當我點擊一個項目來突出顯示它並保持突出顯示,直到我點擊另一個項目。我試圖用列表選擇器來做,但沒有成功。然後我試着這樣做:自定義列表視圖適配器行選擇

public void onClick(View v) { 
    ListView lvItems = context.lvLists; 
    for (int i=0; i < lvItems.getChildCount(); i++) 
    { 
     lvItems.getChildAt(i).setBackgroundColor(Color.BLACK);   
    } 
    v.setBackgroundColor(Color.parseColor("#555555")); 

這是listview每一行的onclick。它的作品,但我看到,當我向下滾動有更多的項目選擇(我沒有選擇)。解決方案?

回答

0

您應該實現視圖持有者模式,然後在持有者代碼中,您可以擁有一個保存該項目當前狀態的(布爾型)變量(突出顯示或不突出顯示),相應地更改背景顏色。

+0

ViewHolder模式是不是存儲的值,它只是用來裝到觀點的引用,使您不必調用getViewById每次適配器重新使用視圖做。 –

相關問題