【发布时间】:2016-09-06 16:13:09
【问题描述】:
我的 Android 应用上有一个ListView。每行都有一个文本和一个图像。当用户单击一行时,该行的图像会更改(这很好用)。问题是,当用户滚动ListView 时,当行穿过ListView 的顶部时(当您不再看到该行时),图像会自动变回默认值。我怎样才能防止这种情况?如果用户单击该行并且图像已更改,我需要该新图像保留在那里(因为新图像是用户已单击该行的指示符)。
感谢您的帮助!
这是我的代码:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i;
ImageView imageView;
switch (position){
case 0:
imageView = (ImageView) view.findViewById(R.id.check_alimentacion);
if (frutas.equals("NO")){
imageView.setImageResource(R.drawable.checkbox);
frutas = "SI";
}else {
imageView.setImageResource(R.drawable.checkbox_inactivo);
frutas = "NO";
}
break;
case 1:
imageView = (ImageView) view.findViewById(R.id.check_alimentacion);
if (verdura.equals("NO")){
imageView.setImageResource(R.drawable.checkbox);
verdura = "SI";
}else {
imageView.setImageResource(R.drawable.checkbox_inactivo);
verdura = "NO";
}
break;
case 2:
imageView = (ImageView) view.findViewById(R.id.check_alimentacion);
if (carne.equals("NO")){
imageView.setImageResource(R.drawable.checkbox);
carne = "SI";
}else {
imageView.setImageResource(R.drawable.checkbox_inactivo);
carne = "NO";
}
break;
}
}
});
【问题讨论】:
-
也发布您的适配器代码
-
我认为adapter getView() 中一定有一些错误。