Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有适配器的AndroidAnnotations和@EViewGroup问题,图像视图错误,复选框已更新_Android_Universal Image Loader_Android Annotations - Fatal编程技术网

带有适配器的AndroidAnnotations和@EViewGroup问题,图像视图错误,复选框已更新

带有适配器的AndroidAnnotations和@EViewGroup问题,图像视图错误,复选框已更新,android,universal-image-loader,android-annotations,Android,Universal Image Loader,Android Annotations,我正在使用AndroidAnnotations 2.7.1,并在整个应用程序中成功地使用了它。然而,我最近偶然发现了一些与@EViewGroup的适配器和自定义视图相关的问题。按照中描述的配方 我有两个不同的适配器和两个不同的自定义视图 在这两个适配器中,ListView的一行中错误的ImageView将使用库Android Universal image Loader加载的图像进行更新。在一个适配器中,只需单击一个即可选中多个复选框 而且当适配器循环使用视图时,您可能会保留该视图以前显示的旧状

我正在使用AndroidAnnotations 2.7.1,并在整个应用程序中成功地使用了它。然而,我最近偶然发现了一些与@EViewGroup的适配器和自定义视图相关的问题。按照中描述的配方

我有两个不同的适配器和两个不同的自定义视图

在这两个适配器中,ListView的一行中错误的ImageView将使用库Android Universal image Loader加载的图像进行更新。在一个适配器中,只需单击一个即可选中多个复选框


而且当适配器循环使用视图时,您可能会保留该视图以前显示的旧状态

检查如何将数据绑定到自定义视图,请记住,如果不重置以前绑定的所有数据,则可以保留这些数据

例如,自定义视图中的以下数据绑定方法可能会导致相同的问题:

public void bind(Data data) {
   if (data.foo) {
      textView.setColor(Color.WHITE);
   }
   (...)
}
如果视图被回收,并且以前的
data.foo
为true,如果现在的
data.foo
为false,则textView将保持其颜色为白色。正确的方法是:

public void bind(Data data) {
   if (data.foo) {
      textView.setColor(Color.WHITE);
   } else {
      textView.setColor(<inital color>);
   }
   (...)
}
公共无效绑定(数据){
if(data.foo){
textView.setColor(Color.WHITE);
}否则{
setColor();
}
(...)
}

感谢您的见解。我知道适配器的回收模式,但还没有深入研究。问题是没有默认/空值,并且提供的数据应该绑定到该视图。尽管如此,我还是尝试将显示图像的方式从在UIL中使用改为
ImageLoader.getInstance().displayImage(URI,iv,选项)似乎解决了问题。