2016-03-04 53 views
2

我改變的背景時,在我的列表視圖中選擇一些項目,但每次我向下滾動的時候,我失去了選擇的項目列表視圖 - 滾動輸球后選定的項目下來

selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@android:color/darker_gray" android:state_selected="true"/> 
</selector> 

適配器

holder.cardView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    boolean selected = v.isSelected(); 
    v.setSelected(!selected); 
    } 
}); 

我如何才能讓後臺狀態?

+1

請發佈您的完整適配器類 –

+1

適配器在您滾動時重新使用它的視圖。閱讀關於它的信息,關於這個問題有很多問題和答案。 –

回答

4

您的意見正在回收。您需要跟蹤其他地方的選定視圖(如整數列表,您保留所選視圖的位置)。

然後,在您的適配器中,在getView中,根據您的列表是否包含位置來設置選定的陳述。

public View getView(int position, View convertView, ViewGroup parent) { 
    ... 
    view.setSelected(mSelected.contains(position)); 
    ... 
} 
0

最好使用ListView的選擇,而不是:

listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
listView.setItemChecked(itemPosition, true); 

還是應該每次打電話view.setSelected在適配器getView。導致在查看被回收之後所選狀態丟失。

相關問題