当前位置:编程学习 > wap >>

点击imageView 更换成另外一张图片

需求很简单,在listview中 先给item的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();
}
});
--------------------编程问答-------------------- 高手在哪里啊 --------------------编程问答-------------------- 你的这个holder.bus_icon.是什么?
一般不都是onItemClickListenter么
然后通过switch(position)来判断点击事件啊。
水平不高,没看明白你的代码。。 --------------------编程问答-------------------- holder.bus_icon 就是一个imageview, 这个图标是在listview中的,所以用了viewHolder类来优化 --------------------编程问答-------------------- 你的onClick事件监听到了,但问题是你onClick事件的逻辑处理。 adapter.notifyDataSetChanged();

   ListView会重写调用getView显示每个Item。 所以显示依旧为R.drawable.bus_blue。如果想要更新,建议添加一个字段进行判断到底显示哪个图片。 --------------------编程问答-------------------- 你不应该调用 adapter.notifyDataSetChanged(),然后再看看。 --------------------编程问答--------------------  adapter.notifyDataSetChanged();
 这个导致ListView重新刷新了,所以图片还是原来的图片,没变 --------------------编程问答--------------------
// 图标
if (isblue) {
bus_icon.setImageResource(R.drawable.bus_blue);
} else {
Log.i("i", "变色了" + isblue);
bus_icon.setImageResource(R.drawable.bus_red);
}
bus_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("i", "点击图标了+test11");
isblue = false;
adapter.notifyDataSetChanged();
}
});
 不刷新adapter也不行,又换了种方式感觉没什么问题啊 --------------------编程问答-------------------- 以上代码是在adapter 的getview方法中写的 --------------------编程问答-------------------- 自己研究搞定啦 --------------------编程问答-------------------- 移除adapter.notifyDataSetChanged(),调用holder.bus_icon.invalidate();

或者
@Override
                public void onClick(View v) {
                    Log.i("i", "点击图标了+test11" + position);
                    ImageView iv = (ImageView)v;
                    iv.setImageResource(R.drawable.bus_red);
                }
--------------------编程问答-------------------- 除
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,