2012-03-30 23 views
2

ich ein Android-Galerie Gebäude bin, und ich möchte die Bilder angezeigt werden in absteigender Reihenfolge nach Dateinamenzur Bestellung-by, um Dateinamen mit manageQuery absteigend

, aber ich bin nicht sicher, was im letzten Feld setzen von mein managedQuery:

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 
+0

überprüfen Sie bitte dieses Problem: http://StackOverflow.com/Questions/22705332/show-Latest-on-Top-in-Alist – Sun

Antwort

2

Nicht genau sicher, weil ich bin mir nicht sicher, welche Art von Datenbank Sie verwenden.

Aber es sieht aus wie Sie diese Zeile wollen:

MediaStore.Images.Media._ID + "dsc"

die Abfrage erzählen von _ID zu sortieren in absteigender Reihenfolge.

Das erste Problem ist einfach. Sie benötigen ein Leerzeichen zwischen "_ID" und "dsc". Es wird gerade zusammengefügt und ich glaube nicht, dass "_IDdsc" wirklich das ist, was Sie wollten. So ist es zu

ändern

MediaStore.Images.Media._ID + „dsc“

Da Sie nach Dateinamen sortieren möchten, würden Sie brauchen nur statt _ID, dass Spaltennamen zu verwenden, es sei denn ... _ID ist der Dateiname

Und ich werde auch erwähnen ... Ich denke, die meisten Datenbanken verwenden "desc" anstelle von "dsc" ... aber das ist genau das, was ich gesehen habe und vielleicht nicht der Fall hier. Oder nehmen Sie es einfach ab, wenn Sie wirklich keine umgekehrte Sortierung wünschen.

+0

Vielen Dank .. nur damit Sie wissen, das ist keine Datenbank, sondern ein Ordner von Bildern auf der SD-Karte eines Android-Geräts. Meine App hat eine benutzerdefinierte Kamera, die Bilder in einem Ordner auf der SD-Karte mit Dateinamen speichert, die von einem Zeitstempel generiert werden, so dass sie nach dem Namen in der Reihenfolge bestellen sollte das letzte Foto zuerst – erik

+1

Ich wollte es überprüfen und bestätigte es sollte sei "DESC", um absteigend zu sortieren. – Jeff

3
final String orderBy = MediaStore.Images.Media.DATE_ADDED;    
cursor = managedQuery(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       columns, null, 
       null, orderBy + " DESC LIMIT 5"); 

"DESC" - absteigend "Limit 5" - ersten fünf Datensätze, wenn Sie alle dann aus der Abfrage verwerfen wollen.