首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当适配器数据源在布局过程中失效时会发生什么?

当适配器数据源在布局过程中失效时会发生什么?
EN

Stack Overflow用户
提问于 2013-09-11 04:50:49
回答 2查看 98关注 0票数 0

假设我有一个与共享数据集接口的适配器。在复合视图(即listView)的布局期间,将调用getView并访问适配器。后续元素将调用GetView。适配器提供对共享数据集中元素的直接锁定引用。

现在,数据集可以从适配器下面更改。在此场景中,当数据集发生更改时,适配器将失效。但是,当UI处于绘图或布局阶段时,数据可能会失效。

我的问题是,当视图遍历它的子级(调用getView,访问适配器)时,如果另一个线程使dataset无效,会发生什么?

EN

回答 2

Stack Overflow用户

发布于 2013-09-11 05:14:52

这取决于你的备份数据是什么样子,你是如何使它失效的,以及你的getView是如何实现的。根据这些情况,您可能会得到一个表示旧数据、新数据或某些未定义状态的视图,这些状态可能会导致意外数据,甚至是NullPointerException或其他异常。

如果您在问题中提供有关数据类型和适配器的更多详细信息,则可以提供更详细的答案。您的适配器的源代码,特别是您的getView方法,也可以提供更具体的答案。

票数 0
EN

Stack Overflow用户

发布于 2013-09-11 05:47:35

您应该始终从UI线程修改适配器的内容,以防止由此产生的问题。否则,你偶尔会得到一个ConcurrentModificationExceptionNullPointerExceptionIndexOutOfBoundsException

如果你还没有看过I/O2010关于ListViews的演讲,我强烈推荐,里面有大量关于它们如何工作以及如何优化它们的好信息。

Google I/O 2010 - The World of ListView

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18728522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档