ListView
3 つの(3) が取り込まれた がありますArrayList
。
items
、ratings
およびcomments
ただし、先頭の「the」を無視してアイテムを並べ替える必要があります。items
ArrayList
を使用して を再配置することで既にこれを達成しています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