Android Studio 0.4.6
Здравствуйте,порядок Asccending по имени столбца с помощью курсора
У меня есть следующие функции, которые должны получить строки базы данных в порядке ASC на основе имени столбца. Однако он просто получает строки в том порядке, в котором они перечислены в базе данных.
Таким образом, он должен быть в алфавитном порядке для имен в базе данных.
Я думаю, что мой курсор запрос правильно, так как в отладчике значение курсора:
SQLiteQuery: SELECT _id, name, phone, email FROM friends ORDER BY name ASC
Что я и хочу. Затем я устанавливаю курсор на первую строку и перебираю их, пока не дойду до последней строки.
Однако он не отображается в алфавитном порядке для имени.
private void loadDB() {
Cursor cursor = db.query(FriendContract.TABLE,
new String[] {FriendContract.Column.ID, FriendContract.Column.NAME, FriendContract.Column.PHONE, FriendContract.Column.EMAIL},
null, null, null, null, FriendContract.Column.NAME + " ASC");
/* Check if database is empty */
if(cursor.getCount() == 0) {
/* There are no rows to load - so just return */
Log.d(TAG, "loadDB() cursor.getCount() == 0. There are no rows, just just refresh listview");
adapter.notifyDataSetChanged();
return;
}
/* Clear all items from array list -
we are going to fill this with the content of the database */
friendsList.clear();
Friend friend;
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
friend = new Friend();
friend.setId(cursor.getLong(0));
friend.setName(cursor.getString(1));
friend.setPhone(cursor.getString(2));
friend.setEmail(cursor.getString(3));
/* Add this to the list of friends */
friendsList.add(friend);
cursor.moveToNext();
}
/* Clean up */
cursor.close();
/* Refresh the listview with the loaded friends */
adapter.notifyDataSetChanged();
}
попытайтесь написать заказ по-маленьким. becoz это работает отлично в моем случае –
Порядок, созданный, я просто передаю ему столбец и ASC. Этот параметр для 'order by' – ant2009
@ user2009 вы получите свой результат –