как упорядочить по убыванию имени файла с помощью manageQuery - PullRequest
2 голосов
/ 30 марта 2012

Я создаю галерею Android и хочу отображать изображения в порядке убывания по имени файла

но я не уверен, что поставить в последнем поле моего управляемого запроса:

String[] projection = {MediaStore.Images.Media._ID};
        // Create the cursor pointing to the SDCard
        cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection, // Which columns to return
                MediaStore.Images.Media.DATA + " like ? ",
                new String[] {"%LC/images%"},  
                MediaStore.Images.Media._ID + "dsc");// order here ?? help

Ответы [ 2 ]

3 голосов
/ 05 июля 2012
final String orderBy = MediaStore.Images.Media.DATE_ADDED;              
cursor = managedQuery(
               MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
               columns, null,
               null, orderBy + " DESC LIMIT 5");

"DESC" - в порядке убывания «Предел 5» - первые пять записей, если вы хотите все, затем отбросьте из запроса.

2 голосов
/ 31 марта 2012

Не совсем уверен, потому что я не уверен, какую базу данных вы используете.

Но, похоже, вам нужна эта строка:

MediaStore.Images.Media._ID + "dsc"

, чтобы указать запросу сортировать по _ID в порядке убывания.

Первая проблема проста.Вам нужен пробел между "_ID" и "dsc".В настоящее время он объединяется вместе, и я не думаю, что "_IDdsc" действительно то, что вы хотели.Поэтому измените его на

MediaStore.Images.Media._ID + "dsc"

Поскольку вы хотите сортировать по имени файла, вам просто нужно использовать это имя столбца вместо _ID ...unless _ID - это имя файла.

И я также упомяну ... Я думаю, что большинство баз данных используют "desc" вместо "dsc" ... но это только то, что я видел, и, возможно, нетдело здесь.Или просто снимите его, если вы действительно не хотите обратной сортировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...