我有一个ListView
由三 (3) 个填充ArrayList
的:
items
,ratings
和comments
但是,我需要通过忽略前导“the”来对项目进行排序。我已经通过重新排列items
ArrayList
使用 a Collections.sort
(见下面的代码)来实现这一点,但这是问题所在:评论和评级没有重新排列,所以它在ListView
.
例如,如果列表是:
- 汽车 3 4
- 人 5 3
- 动物 7 4
排序后items
我得到:
- 动物 3 4
- 汽车 5 3
- 人 7 4
因此,items
它们正在按我的意愿排列,但相关联的comments
并ratings
没有排序。我不确定如何做到这一点以及将其放置在哪里。我认为在 ArrayAdapter 中?
这是我更改items
列表的代码:
Comparator<String> ignoreLeadingThe = new Comparator<String>() {
public int compare(String a, String b) {
a = a.replaceAll("(?i)^the\\s+", "");
b = b.replaceAll("(?i)^the\\s+", "");
return a.compareToIgnoreCase(b);
}
};
Collections.sort(items, ignoreLeadingThe);
这是问题吗?我可以在哪里以及如何根据项目列表的位置对评分和评论列表进行排序?
编辑:
这是我的 getView 代码ArrayAdapter
:
ItemObject io = getItem(position);
String name = io.name;
String total = io.total;
String rating = io.ratings;
String comment = io.comments;
holder.t1.setText(name);
holder.t2.setText(total);
holder.t3.setText(comment);
holder.t4.setText(rating);
注意:上面的例子中我没有提到第 4 个ArrayList
调用。total