我为listview中的项目的imageview设置了图像A.我设置了onclick事件并更改为另一个图像B.但是点击它之后无法更改为另一个图像。当我打印Log时,我看到已经调用了这个方法。
holder.bus_icon.setImageResource(R.drawable.bus_blue);
holder.bus_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("i", "点击图标了+test11" + position);
holder.bus_icon.setImageResource(R.drawable.bus_red);
adapter.notifyDataSetChanged();
}
});
答案 0 :(得分:3)
删除adapter.notifyDataSetChanged();
,因为适配器中没有任何更改,并调用holder.bus_icon.invalidate();
。
希望这可以帮助你。
答案 1 :(得分:2)
在onclick中,持有人指向错误的imageView。
改为使用
@Override
public void onClick(View v) {
Log.i("i", "点击图标了+test11" + position);
ImageView iv = (ImageView)v;
iv.setImageResource(R.drawable.bus_red);
}
希望它能解决