2010-11-21 1 views
49

Qualcuno sa come posso visualizzare il cursore in esso durante il debug in modo da poter determinare la funzionalità del mio helper del database?Visualizzazione di un cursore del database Android

Mantiene agire come se fosse la restituzione dei dati, ma poi quando tento di utilizzare il metodo cursor.isNull(0), continuo a ricevere NullPointerException gettato e non essere in grado di vedere ciò che il cursore ha in sé, mentre passando attraverso l'esecuzione è veramente mi frustrante.

Qualsiasi aiuto sarebbe estremamente apprezzato.

Grazie.

risposta

-6

Se si tratta di un'eccezione di puntatore nullo, sembra che il cursore sia effettivamente nullo.

Vorrei utilizzare Log.d() per facilitare il debug dei miei cursori, è sufficiente creare un metodo di supporto per eseguire il dump dell'intera riga del cursore su LogCat.

+0

Log.d ("col 0" + mCursor.getLong (0) + ", col1" + mCursor.getLong (1)); e così via ... – xandy

+0

Okay ... allora, quando provo a farlo; Log.d ("Activity.cursor", "col 0:" + cursor.getLong (0)); Si blocca. Quando provo questo; Log.d ("Activity.cursor", "col 0:" + cursor.getCount()); Si dice col 0: 1 Come può essere nullo? – Skittles

+30

Penso di aver trovato la risposta di cui avevo bisogno. Apparentemente questa classe davvero fantastica mi consente di vedere il contenuto esatto del cursore sotto forma di tabella hash. DatabaseUtils.dumpCursor (cursore); Grazie comunque per l'aiuto, xandy. :) – Skittles

269

Android ha fornito una classe specifica solo per il debug dei cursori. Si chiama DatabaseUtils.

Chiamare il metodo DatabaseUtils.dumpCursorToString(cursor) per visualizzare il contenuto del cursore.

Questo helper esegue il ciclo e stampa il contenuto del Cursore per te e riporta il cursore nella sua posizione originale in modo da non compromettere la logica iterativa.

+46

perché non è questa la risposta accettata? – Mirko

+5

Questa è sicuramente la risposta corretta. – suomi35

+3

Questo perché era l'unica risposta e lo stesso @Skittles ha trovato su DatabaseUtils 2 anni prima che questa risposta fosse pubblicata. –