2011-05-10 12 views
5

¿Hay alguna forma de limitar el resultado obtenido de mediastore utilizando la función managedQuery en Android? Dado que actualmente tengo una grilla que muestra todas las fotos encontradas en la tarjeta SD pero es demasiado intensa para buscarla, decido limitar el resultado obtenido de la tienda multimedia pero no pude encontrar una función límite que pueda reducir el conjunto resultante de datos. .Obteniendo solo las primeras 100 filas de imagen de mediastore

Por favor, ayudar a

Respuesta

22

utilización orden en el método de consulta de contentresolver para poner en práctica su función, como 'nombrecolumna número límite de asc'

en mi caso:

cursor = resolver.query(STORAGE_URI, projection, 
         Media.BUCKET_DISPLAY_NAME + "=?", 
         new String[] { folderName }, 
         " _id asc limit " + num); 
+1

y necesita el " asc" parte, que pueda simplemente pon el "límite N". –

+0

Asegúrese de no utilizar el formato de cadena para crear el parámetro, ya que realiza la localización de forma predeterminada, es decir, la siguiente declaración causará la excepción de SQL en teléfonos árabes: 'String sortOrder = String.format (" _id asc limit (% d) ", num); ' –

+0

@TomSusel Bastante no confíe en la configuración predeterminada :) –

2

puede limitar el resultado utilizando el parámetro sortOrder en query método. Algo como esto

ContentResolver contentResolver = getContentResolver(); 
Cursor androidCursor = null; 
String sortOrder = String.format("%s limit 100",BaseColumns._ID); 
androidCursor = contentResolver.query(IMAGE_URI,PROJECTION, null, null, sortOrder); 

Esto pedirá el resultado establecido por id y limitará el resultado.

Cuestiones relacionadas