【发布时间】:2015-03-08 22:02:59
【问题描述】:
我有一个在行中有日期的适配器。当用户更新日期时,我希望根据 object 日期属性中的 UNIX 时间对行进行重新排序。我相信我需要在我的ArrayList<Object> 上使用Comparator 和/或Collections 排序。从this question看到。
我的问题是:当我调用notifyDataSetChanged() 时,ArrayAdapter 中的哪里 需要进行排序吗?或者当我构建它时它会在适配器之外(这对我来说没有意义)?
【问题讨论】:
-
取决于您的适配器和加载器实现。可以在
loadOnBackground(),在你的ContentProvider,在你的ArrayList,...... -
@T 我的
ContentProvider是我的ArrayAdapter。我仍在使用ListView。如果我需要添加更多详细信息,请告诉我。 -
如果您有对适配器数据的引用,只需在调用通知之前对其进行排序。你提到这没有意义,但是当你的适配器被构造时,它只是指向这个数据,它们是同一个对象。
-
顺便说一句,当你只有一个项目不合适时,做一个完整的排序是非常低效的。
-
那么在
ArrayAdapter的构造函数中我可以做Collection/Comparator排序吗?
标签: java android collections adapter comparator