当在列表视图中选择某个项目时,我正在更改背景,但是每次向下滚动时,我都会丢失选定的项目
选择器.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);
}
});
如何保持背景状态?
最佳答案
你的观点正在被回收利用。您需要跟踪其他地方的选定视图(如整数列表,其中保留选定视图的位置)。
然后,在适配器的getview中,根据列表是否包含位置来设置所选的stated。
public View getView(int position, View convertView, ViewGroup parent) {
...
view.setSelected(mSelected.contains(position));
...
}