我有一个在行中有日期的适配器。当用户更新日期时,我希望根据object
日期属性中的UNIX时间对行进行重新排序。我相信我需要在Comparator
上使用Collections
和/或ArrayList<Object>
排序。从this question可以看出。
我的问题是:当我致电notifyDataSetChanged()
时,ArrayAdapter
中 的排序需要进行排序吗?或者当它构建它时它是否在适配器之外(这对我来说没有意义)?
答案 0 :(得分:1)
在调用notifyDataSetChanged
之前,对适配器的支持数据对象进行排序。
答案 1 :(得分:0)
有关代码的答案,请将其放在适配器中或您需要进行排序的地方:
adapter.sort(new Comparator<Ledger>() {
public int compare(MyObject lhs, MyObject rhs) {
return rhs.transaction_date.compareTo(lhs.transaction_date);
}
});
notifyDataSetChanged();
这是我用来实现这项工作的代码。注意:我想按降序排序,因此我在rhs
之前返回了lhs
。此外,这会保持您的ListView
位置始终良好。