Сортировка данных ListView с помощью ArrayAdapter - PullRequest
0 голосов
/ 22 февраля 2019

Я просто хочу отсортировать свои данные с помощью сортировки и сравнить два значения.

Вот мой код:

        ArrayAdapter arrayAdapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, myData);

        arrayAdapter.sort(myData, new Comparator<myData>() {
            @Override
            public int compare(myData o1, myData o2) {
                return Integer.compare(o1.getFinalScore(), o2.getFinalScore());
            }
        });

        arrayAdapter.notifyDataSetChanged();
        dataList.setAdapter(arrayAdapter);

Но я получил сообщение об ошибке сортировки (java.util.Comparator) в ArrayAdapter нельзя применить к (java.lang.string [], anonymousjava.util.Comparator)

Может кто-нибудь сказать, в чем проблема ??

myData class

public class myData {

public int getFinalScore() {
    return finalScore;
}

public void setFinalScore(int finalScore) {
    this.finalScore = finalScore;
}

private String customeName;
private String carName;
private String appointmentDate;
private String email;
private String issueDescribe;
private String timeForJob;
private String costForJob;
private String reliableOnCar;
private String distanceJob;
private int finalScore;

public myData(String customeName, String carName, String appointmentDate, String email, String issueDescribe, String timeForJob, String costForJob,
              String reliableOnCar, String distanceJob, int finalScore) {
    this.customeName = customeName;
    this.carName = carName;
    this.appointmentDate = appointmentDate;
    this.email = email;
    this.issueDescribe = issueDescribe;
    this.timeForJob = timeForJob;
    this.costForJob = costForJob;
    this.reliableOnCar = reliableOnCar;
    this.distanceJob = distanceJob;
    this.finalScore = finalScore;
}

}

1 Ответ

0 голосов
/ 22 февраля 2019

Если вы посмотрите документацию sort () для ArrayAdapter, вы увидите, что для этого требуется только один аргумент - компаратор.

Поэтому вы должны обновить свой код следующим образом:

arrayAdapter.sort(new Comparator<myData>() {
            @Override
            public int compare(myData o1, myData o2) {
                return Integer.compare(o1.getFinalScore(), o2.getFinalScore());
            }
        });

Надеюсь, это поможет!

...