カーソルは、基になるデータへのポインターと考えることができます。c.toString()
カーソル オブジェクトで実行Cursor
すると、その文字列表現 (アットマーク文字とオブジェクトのハッシュ コードの符号なし 16 進数表現) の既定のクラスの実装が出力され@
ますが、これは必要なものではありません。
基になるデータベース データを取得するには、c.getString(columnIndex)
( source ) を呼び出すか、その特定の列インデックスに必要な列データ型を呼び出す必要があります。
source から変更された例を次に示します。
テーブルを作成したとします
private static final String DATABASE_CREATE =
"create table comments ( "
+ "_id integer primary key autoincrement, "
+ "comment text not null);";
関数は、と の両方に関するデータをgetAllGoals
指すカーソルを返します。ここで、列に関する詳細のみを表示する必要があります。したがって、実行する必要があります。関数が、列に関するデータのみを指すカーソルを返すとします。実行する必要があります。 _id
comment
comment
c.getString(1)
getAllGoals
comment
c.getString(0)
提供されている例のソース コードをダウンロードして、カーソルからデータを取得する方法を確認することをお勧めします。
編集:
public List<Comment> getAllComments() {
List<Comment> comments = new ArrayList<Comment>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_COMMENTS,
allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {//retrieve data from multiple rows
Comment comment = cursorToComment(cursor);
comments.add(comment);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return comments;
}
private Comment cursorToComment(Cursor cursor) {
Comment comment = new Comment();
comment.setId(cursor.getLong(0));
comment.setComment(cursor.getString(1));
return comment;
}
ソース