【发布时间】:2011-10-06 17:13:17
【问题描述】:
我有一个带有重写 ArrayAdapter 的 listView。 In 包含一个 ArrayList。对象 Order 可以有以下状态:
- 新
- 阅读
- 接受
- 已取消
根据订单的状态,我膨胀了一个不同的布局,并用 getView 方法中的值填充它并作为视图返回。订单每分钟都与服务器同步。这一切正常。如果有新的 Order 出现,则将其插入 ArrayList 并调用 NotifyDataSetChange 并更新 listView。但是,由于某种原因,列表中的一些现有项目改变了它们的布局(状态没有改变,在日志中检查)。每次调用 NotifyDataSetChanged 时都会发生这种情况,我在此行为中看不到任何逻辑或任何内容。有谁知道为什么会这样?
谢谢, 菲利普
【问题讨论】:
-
你在使用 getViewTypeCount() 吗?见stackoverflow.com/questions/4777272/…
-
我搞定了。我认为问题在于我从 ArrayAdapter 扩展,它在构造函数中接收 ROW 视图的视图资源 ID。这比给 getView 方法。我正在使用一些教程,并且如果它为 NULL,convertView 在那里进行了测试。如果是我膨胀了一个新的布局。比我用我的价值观填充它。如果没有,我只是用这些值填充了 convertView。我想如果 convertView 不为空,它包含传递给 CustomArrayAdapter 的构造函数的膨胀布局,因此改变了行的布局。我是对的吗?
标签: android listview android-arrayadapter