2015-04-03 29 views
-1

这是我迄今为止将数据库中的值返回给listview的代码。我需要按照字母顺序让它们出现。我应该如何更改此代码?请帮忙!如何从数据库中获取值以按照alpherbatical顺序在列表视图中设置

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; 
     } 

回答

1

您可以使用您的查询是这样的:

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

希望它帮助。

+0

谢谢你洙多说了!这是工作! :) – 2015-04-03 07:58:31

+0

高兴地帮助你。快乐的编码:-) – Umair 2015-04-03 08:01:27

1

试试这个 SELECT * FROM TABLE_UNITS ORDER BY YOUR_COLUMN_NAME;

您可以依次ORDER BY后使用ASCDESC命令来获取数据,按您的要求,即要在字母顺序显示或反向字母顺序。

0

您可以使用这段代码按字母顺序排列列表。 object2.yourparameter是您要订购的参数。

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

,或者你可以改变你的查询像上面

相关问题