2014-09-29 2 views
1

Я хочу сортировать свой списокView по переменной под названием score. Кто-нибудь знает, как это сделать? В настоящее время здесь находится мой код, который получает информацию из базы данных и отображает ее в виде списка.Сортировка Listview Java

List<String> queryTable(){ 
    List<String> player = new ArrayList<String>(); 

    SQLiteDatabase db = myOpenHelper.getReadableDatabase(); 
    Cursor cursor = db.query(CustomOpenHelper.TABLE_NAME, null, null, null, null, null, null); 

    while (cursor.moveToNext()) { 
     int id = cursor.getInt(cursor.getColumnIndex("_id")); 
     String name = cursor.getString(cursor.getColumnIndex("name")); 
     int score = cursor.getInt(cursor.getColumnIndex("score")); 
     player.add(id + " --> the player " + name + " has got a score of " + score +"s"); 
    } 

Так как же я буду сортировать этот список по переменной «оценка»? Спасибо, парни.

+0

попробовать его с помощью сравнимой –

+0

получить информацию из базы данных уже отсортирован. Для этого 'ORDERY BY columnname' есть ключевые слова sql. Вы можете добавить' ASC' или 'DESC', чтобы получить его по возрастанию или по убыванию. – user28470

ответ

1

Последний параметр функции query используется для сортировки. Просто замените нуль

column_name + " DESC". 
+0

Извините, похоже, что это не сработало, это просто сбой при реализации этого. – user3584935

0

Список имеет функцию сортировки по элементам. Это пример кода:

List<Fruit> fruits= new ArrayList<Fruit>(); 
Fruit fruit; 
for(int i=0;i<100;i++) 
{ 
    fruit = new fruit(); 
    fruit.setname(...); 
    fruits.add(fruit); 
} 
//Sorting 
Collections.sort(fruits, new Comparator<Fruit>() { 
    @Override 
    public int compare(Fruit fruite1, Fruit fruite2) 
    { 

     return fruite1.fruitName.compareTo(fruite2.fruitName); 
    } 
}); 

Этот код сортирует список в соответствии с свойством furitName. Когда мы посмотрим ваш код, вы можете сделать то же самое. Во-первых, вы должны использовать класс, который представляет идентификатор, имя и оценку. Используя этот класс, вы можете добавлять и сортировать элементы с помощью List.

0

Просто сохраните записи в списке, а затем примените сортировку (в зависимости от переменной, называемой оценкой), а затем сообщите об этом списке в этом обновленном и отсортированном списке.

0

вызова этот метод:

Collections.sort (score_list, myComparator);

вот ваш компаратор:

Компаратор myComparator = новый компаратор() {

@Override 
    public int compare(Integer lhs, Integer rhs) { 
     int i1 = lhs; 
     int i2 = rhs; 
     return (i1 -i2); 
    } 
}; 
Смежные вопросы