带有适配器的AndroidAnnotations和@EViewGroup问题,图像视图错误,复选框已更新
我正在使用AndroidAnnotations 2.7.1,并在整个应用程序中成功地使用了它。然而,我最近偶然发现了一些与@EViewGroup的适配器和自定义视图相关的问题。按照中描述的配方 我有两个不同的适配器和两个不同的自定义视图 在这两个适配器中,ListView的一行中错误的ImageView将使用库Android Universal image Loader加载的图像进行更新。在一个适配器中,只需单击一个即可选中多个复选框带有适配器的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加载的图像进行更新。在一个适配器中,只需单击一个即可选中多个复选框 而且当适配器循环使用视图时,您可能会保留该视图以前显示的旧状
而且当适配器循环使用视图时,您可能会保留该视图以前显示的旧状态 检查如何将数据绑定到自定义视图,请记住,如果不重置以前绑定的所有数据,则可以保留这些数据 例如,自定义视图中的以下数据绑定方法可能会导致相同的问题:
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,选项)代码>似乎解决了问题。