У меня есть приложение, в котором есть база данных sqlite, содержимое которой помещается в arrayylist и просматривается через представление списка. Моя проблема в том, что я не могу получить товар в алфавитном порядке. Я реализовал Collections.sort(), но получаю ошибку "Связанное несоответствие". Любые идеи

Ошибка:

Несоответствие привязки: общий метод sort(List<T>) типа Collections не применим для аргументов (ArrayList<LoginDetails>). Выведенный тип LoginDetails не является допустимой заменой ограниченного параметра <T extends Comparable<? super T>>

private ListView loginList;
private Button webLogin;
private ListAdapter loginListAdapter;
private ArrayList<LoginDetails> loginArrayList;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_listview);


    loginList = (ListView)
    findViewById(R.id.loginlist);
    loginList.setOnItemClickListener(this);

    webLogin = (Button)
    findViewById(R.id.button3);
    webLogin.setOnClickListener(this);

    loginArrayList = new ArrayList<LoginDetails>();
    loginListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
    loginList.setAdapter(loginListAdapter);

    Collections.sort(loginArrayList ); //Bound mismatch error is here.
    }

Войти

public class LoginDetails {

private String sName;
private String wUrl;
private String uName;
private String pWord;

public String getsName() {
return sName;
}
public void setsName(String sName) {
this.sName = sName;
}

public String getwUrl() {
return wUrl;
}
public void setwUrl(String wUrl) {
this.wUrl = wUrl;
}

public String getuName() {
return uName;
}
public void setuName(String uName) {
this.uName = uName;
}
public String getpWord() {
return pWord;
}
public void setpWord(String pWord) {
this.pWord = pWord;
}

}
1
user1165694 25 Июл 2012 в 17:42
4
Реализует ли LoginDetails Comparable?
 – 
Che Jami
25 Июл 2012 в 17:44
Было бы полезно, если бы вы добавили объявление своего класса для LoginDetails.
 – 
Che Jami
25 Июл 2012 в 18:15
Че, добавился класс Детали логина.
 – 
user1165694
25 Июл 2012 в 20:19

1 ответ

Лучший ответ

Как описано в документации по API, для Collections.sort:

Все элементы в списке должны реализовывать интерфейс Comparable.

Убедитесь, что LoginDetails реализует Comparable.

Например:

public class LoginDetails implements Comparable<LoginDetails>{
    //...        

    @Override
    public int compareTo(LoginDetails another) {
        return uName.compareTo(another.uName);
    }

    //...
4
Che Jami 25 Июл 2012 в 20:40