2015-04-03 2 views
-1

Ceci est mon code jusqu'à présent pour récupérer les valeurs de la base de données vers la liste. J'ai besoin de les faire apparaître selon l'ordre alphabétique. Comment devrais-je changer ce code? S'il vous plaît aider!Comment obtenir des valeurs de la base de données pour définir des valeurs dans une vue de liste en fonction de l'ordre alphabétique

public List<Units> getAllUnit() { 
      List<Units> unit = new ArrayList<Units>(); 

      SQLiteDatabase db = getWritableDatabase(); 
     Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_UNITS, null); 

     if (cursor.moveToFirst()) { 
       do { 
       unit.add(new Units(Integer.parseInt(cursor.getString(0)) , cursor.getString(1), cursor.getString(2), cursor.getString(3))); 
     } 
      while (cursor.moveToNext()); 
     } 
     cursor.close(); 
     db.close(); 
     return unit; 
     } 

Répondre

1

Vous pouvez utiliser votre requête comme ceci:

db.rawQuery("SELECT * 
     FROM " +tableName +" ORDER BY " +yourcolumnName+ " DESC", null); 

espère que cela aide.

+0

Merci soo beaucoup! Cela fonctionne !! :) –

+0

Heureux de vous aider. Codage Happy :-) – Umair

1

Essayez cette SELECT * FROM TABLE_UNITS ORDER BY YOUR_COLUMN_NAME;

Vous pouvez utiliser ASC et DESC commande après ORDER BY afin d'obtenir les données selon vos besoins à savoir que vous voulez afficher dans l'ordre alphabétique ou ordre alphabétique inverse.

0

vous pouvez utiliser ce morceau de code pour ordonner la liste alphabétiquement. le object2.yourparameter est le paramètre que vous souhaitez commander.

Collections.sort(unit, new Comparator<Units>() 
      { 
       @Override 
       public int compare(final Units object1, final Units object2) 
       { 
        return object1.name.compareTo(object2.yourparameter); 
       } 
      }); 

ou vous pouvez changer votre requête comme dit ci-dessus