私は自分で問題をデバッグしようとしています。私が失敗した場合は後で投稿するかもしれません;-)
私のlogcatログの状態"android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2"
log.v("desc", cursor)
カーソルが返すものを表示するために使用したいと思います。cursor[0] のようにそこから値を指定する方法はありますか?
私は自分で問題をデバッグしようとしています。私が失敗した場合は後で投稿するかもしれません;-)
私のlogcatログの状態"android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2"
log.v("desc", cursor)
カーソルが返すものを表示するために使用したいと思います。cursor[0] のようにそこから値を指定する方法はありますか?
Android は、カーソルをデバッグするためだけに特定のクラスを提供しています。これはDatabaseUtilsと呼ばれます。
メソッドdumpCursorToString()を呼び出して、カーソルの内容を表示します。
このヘルパーはループして Cursor の内容を出力し、カーソルを元の位置に戻して、反復ロジックを台無しにしないようにします。
カーソルの内容を行ごとに logcat に書き込む場合は、次のコードを使用できます。
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());
}
moveToFirst()
Cursorを呼び出す必要があります。
または、特定の時点でカーソルがどこにあるかを探している場合は、呼び出しますCursor.getPosition()
Cursor APIを見てください。
多くの場合、非常に冗長ですが、役立つ場合もあります。