我试图在单击时更改列表项的图像。我尝试使用 View ,但在使用它时,即使我只单击一个,我也会得到多个图像已更改的项目。我使用的是 simplecursor 适配器和代码与此问题中给出的代码相同:- changing image on listview at runtime in android。
而且我也不想使用自定义适配器。如果有人帮助我通过简单的适配器解决这个问题,那将非常有帮助。
当前代码
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
/*
imageView=(ImageView)l.getChildAt(position).findViewById(R.id.PlayPause);
imageView.setImageResource(R.drawable.pause);
*/
}
最佳答案
1- 当您在事件中直接获取 subview 作为“View v”时,不要使用 get child at。
2- 一旦你设置了新的背景资源,你只需要在 View 上调用 invalidate() 方法。
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
imageView=((ImageView)v)
imageView.setImageResource(R.drawable.pause);
imageView.invalidate();
虽然您应该使用带有 ImageView 的简单光标适配器制作列表 ---- :-
http://thinkandroid.wordpress.com/2010/01/09/simplecursoradapters-and-listviews/
请引用此链接。
关于android - 单击更改 ListView 项目的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225499/