Решение от Йохана в порядке, но вы должны подумать об использовании логических объектов.В основном одна строка вашей таблицы представляет собой логический объект.Вы должны извлечь строку базы данных в один объект, чтобы вы могли легко с ними работать.
Пример для Bookmark
объекта:
public static List<Bookmark> getBookmarks(SQLiteDatabase db, long emagId) {
List<Bookmark> bookmarksList = null;
Cursor cursor = null;
try {
// WHERE clause for the SELECT query
final String where = Bookmark.EMAG_ID + " = " + emagId;
cursor = db.query(Bookmark.TABLE, new String[] {}, where, null, null, null, null);
bookmarksList = new ArrayList<Bookmark>();
while (cursor.moveToNext()) {
Bookmark bookmark = new Bookmark();
bookmark.id = cursor.getLong(cursor.getColumnIndex(Bookmark.ID));
bookmark.emag_id = cursor.getLong(cursor.getColumnIndex(Bookmark.EMAG_ID));
bookmark.page_number = cursor.getInt(cursor.getColumnIndex(Bookmark.PAGE_NUMBER));
bookmark.article_id = cursor.getLong(cursor.getColumnIndex(Bookmark.ARTICLE_ID));
bookmark.ref_html = cursor.getString(cursor.getColumnIndex(Bookmark.REF_HTML));
bookmark.ref_text = cursor.getString(cursor.getColumnIndex(Bookmark.REF_TEXT));
bookmark.ref_html = bookmark.ref_html;
bookmark.ref_text = "Page: " + bookmark.page_number;
bookmark.resource_id = cursor.getLong(cursor.getColumnIndex(Bookmark.RESOURCE_ID));
bookmark.resource_type = cursor.getInt(cursor.getColumnIndex(Bookmark.RESOURCE_TYPE));
bookmark.source_type = cursor.getInt(cursor.getColumnIndex(Bookmark.SOURCE_TYPE));
bookmark.content_path = cursor.getString(cursor.getColumnIndex(Bookmark.CONTENT_PATH));
bookmarksList.add(bookmark);
}
} catch (Exception e) {
Log.e(LOG_TAG, "::getBookmarksForEmagId", e);
} finally {
if (cursor != null) {
cursor.close();
}
}
return bookmarksList;
}
Я видел этот код в вашем вопросе new String[] + "=" + "_id"
.Я думаю, что это не будет работать ...