大文字と小文字を区別せずに、映画の配列をアルファベット順に並べようとしています。私のアプリケーションでは、ユーザーは自分のエントリを ListView 内の既に初期化されているムービーの配列に追加できます。スニペットは次のとおりです。
Lab7_082588FetchDetails newMovie = new Lab7_082588FetchDetails();
IgnoreCaseComparator ignoreCase = new IgnoreCaseComparator();
newMovie.setTitle(data.getStringExtra(Lab7_082588Edit.TITLE_STRING));
newMovie.setGross(data.getStringExtra(Lab7_082588Edit.GROSS_STRING));
newMovie.setDate(data.getStringExtra(Lab7_082588Edit.DATE_STRING));
results.add(newMovie);
adapter.notifyDataSetChanged();
Collections.sort(results, ignoreCase);
ただし、最後の行の .sort 部分でエラー メッセージが表示されます。
The method sort(List<T>, Comparator<? super T>) in the type Collections is not applicable for the arguments (ArrayList<Lab7_082588FetchDetails>, IgnoreCaseComparator)
また、これは私の IgnoreCaseComparator です:
import java.util.Comparator;
class IgnoreCaseComparator implements Comparator<String> {
public int compare(String strA, String strB) {
return strA.compareToIgnoreCase(strB);
}
}
そして、私の Fetch Details クラス:
public class Lab7_082588FetchDetails implements Comparable<Lab7_082588FetchDetails> {
private String title;
private String gross;
private String date;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getGross() {
return gross;
}
public void setGross(String gross) {
this.gross = gross;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
@Override
public int compareTo(Lab7_082588FetchDetails another) {
// TODO Auto-generated method stub
return title.compareTo(another.title);
}
}
これを解決するにはどうすればよいですか?