2013-11-12 3 views
0

Я пытаюсь заполнить счетчик из моей базы данных, но когда я получаю данные, они не хотят, чтобы они отсортировались по порядку по году, даже указав это в запросе.Как заполнить счетчик из базы данных и ORDER BY

Это, как я получаю данные

public Set<String> getAllData(int getData,String[] args, String qry) { 
    Set<String> set = new HashSet<String>(); 

    String selectQuery = qry ; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery , args); 

    if (cursor.moveToFirst()) { 
     do { 
      set.add(cursor.getString(getData)); 
     } while (cursor.moveToNext()); 
    } 

    cursor.close(); 
    db.close(); 

    return set; 
} 

и это запрос

 String myQry = "SELECT * FROM Car ORDER BY year"; 

и загрузка вертушка

private void loadSpinner(Spinner mySpinner, int getData, String[] args, String qry) { 

    // here i used Set Because Set doesn't allow duplicates. 
    Set<String> set = db.getAllData(getData, args, qry); 
    List<String> list = new ArrayList<String>(set); 

    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    mySpinner.setAdapter(adapter); 
    mySpinner.setWillNotDraw(false); 
} 

Благодаря

ответ

0

HashSet не поддерживает порядок вставки, попробуйте LinkedHashSet.

0

Вы используете HashSet, который не гарантирует e порядок вставки. Используйте список или отсортированный набор ...

0
Collections.sort(list, new YourComparator)); 

      class YourComparator implements Comparator<String>{ 
       . 
       . 
       . 

See this link }}

Смежные вопросы