gpt4 book ai didi

AndroidAnnotations with Adapters 和 @EViewGroup 更新了错误的 ImageView 和 Checkbox 问题

转载 作者:行者123 更新时间:2023-11-29 21:38:18 24 4
gpt4 key购买 nike

我正在使用 AndroidAnnotations 2.7.1,并且在我的整个应用程序中都成功地使用了它。但是,我最近偶然发现了一些与@EViewGroup 的适配器和自定义 View 相关的问题。按照 cookbook 中描述的配方进行操作.

我有两个不同的适配器和两个不同的自定义 View 。

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

ShowViewShowsAdapter <-- 错误的 ImageView 和 Checkbox 在 ListView 的行中更新

ShowScheduleViewScheduleAdapter <-- ListView 行中的错误 ImageView

我知道 getView() 被多次调用以确定每一行的高度。

也尝试过在 UIL 选项中使用 ViewHolders 和 .resetViewBeforeLoading() 但无济于事。

什么可能导致这种行为?

提前致谢!

最佳答案

由于 View 由适配器回收,您可能会保留该 View 先前显示的旧状态。

检查您如何将数据绑定(bind)到您的自定义 View ,记住所有以前绑定(bind)的数据如果不重置则可以保留。

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

public void bind(Data data) {
if (data.foo) {
textView.setColor(Color.WHITE);
}
(...)
}

如果 View 被回收并且之前 data.foo 为 true,如果现在 data.foo 为 false,textView 将保持其颜色为白色。正确的做法是这样的:

public void bind(Data data) {
if (data.foo) {
textView.setColor(Color.WHITE);
} else {
textView.setColor(<inital color>);
}
(...)
}

关于AndroidAnnotations with Adapters 和 @EViewGroup 更新了错误的 ImageView 和 Checkbox 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17787869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com