2010-06-23 13 views
9

Estoy tratando de solucionar un problema yo mismo. Pueden publicar más tarde si fracaso ;-)¿Se encontraron valores de salida en cursor a logcat? - Android

Mis estados de registro Logcat "android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2"

me gustaría utilizar log.v("desc", cursor) para mostrar lo que los rendimientos del cursor. ¿Hay alguna forma de especificar un valor como el cursor [0]?

+0

"Me gusta usar log.v (" desc", cursor) para mostrar lo que los rendimientos del cursor. ¿Hay una manera de especificar un valor de él como del cursor [ 0]? " Me pregunto qué quieres decir con la frase? ¿Le gustaría ver el número entero de la fila 0 (valor de todas las columnas en la fila 0)? – Gawcio

Respuesta

2

¿Ha llamado moveToFirst() en Cursor?

+0

Gracias, eso resolvió mi problema. Ahora a la siguiente, ¡yay! ¡Eres una estrella! – Amit

0

O si lo que buscas es donde está el cursor en un punto específico en el tiempo, llamar Cursor.getPosition()

Tome un vistazo a la Cursor API.

A menudo es muy prolijo, pero a veces ayuda.

7

Si tiene la intención de escribir contenido del cursor a la fila por fila Logcat se puede utilizar código de la siguiente manera:

if (cursor.moveToFirst()) { 
    do { 
     StringBuilder sb = new StringBuilder(); 
     int columnsQty = cursor.getColumnCount(); 
     for (int idx=0; idx<columnsQty; ++idx) { 
      sb.append(cursor.getString(idx)); 
      if (idx < columnsQty - 1) 
       sb.append("; "); 
     } 
     Log.v(TAG, String.format("Row: %d, Values: %s", cursor.getPosition(), 
      sb.toString())); 
    } while (cursor.moveToNext()); 
} 
+0

¿Qué pasa si la columna no es una cadena, puede ser int doble? – Sumit

56

Android ha proporcionado una clase específica sólo para la depuración de los cursores. Se llama DatabaseUtils.

Llame al método dumpCursorToString() para ver el contenido de su cursor.

Este ayudante recorre e imprime el contenido del Cursor por usted, y lo coloca en su posición original para que no estropee su lógica de iteración.

35

uso esto antes cursor.moveToFirst()

Log.v("Cursor Object", DatabaseUtils.dumpCursorToString(cursor)) 
+0

+ import android.database.DatabaseUtils; – Kozuch

Cuestiones relacionadas