Intereting Posts
Не удалось найти цель с хэш-строкой android-23 Как перенести работу на передний план (верхняя часть стека)? Дополнительные приложения для Android о распознавании речи не работают Драйвер файловой системы пользовательского пространства Android на неуправляемом устройстве? Прокрутка панели инструментов в строке состояния Сохранить растровое изображение в Android в формате JPEG во внешнем хранилище в папке Не может запускать режим отладки в студии Android Автоматическое запрещение приложений, начинающихся с запуска Почему многие классы андроидов (примеры и исходники) начинаются с «m»? Подпапки в папке с выделенными ресурсами? LinearGradient Center Animation Как определить, какой файл MP3 закончился в MediaPlayer.OnCompletionListener? Как бороться с удалением разрешения для широковещательного приемника в Android M? Прозрачный прокси для тестирования ответов сервера офлайн на Android Потребление памяти мобильного веб-канала

Android SQLite – Cursor & ContentValues

Есть ли способ получить объект ContentValues ​​из SQLite? Очень полезно, что мы можем вставлять ContentValues ​​в БД, и было бы более полезно получить CV оттуда.

Solutions Collecting From Web of "Android SQLite – Cursor & ContentValues"

Вы можете использовать метод cursorRowToContentValues ​​(курсор, значения ContentValues) класса DatabaseUtils .

пример

Cursor c = db.query(tableName, tableColumn, where, whereArgs, groupBy, having, orderBy); ArrayList<ContentValues> retVal = new ArrayList<ContentValues>(); ContentValues map; if(c.moveToFirst()) { do { map = new ContentValues(); DatabaseUtils.cursorRowToContentValues(c, map); retVal.add(map); } while(c.moveToNext()); } c.close(); 

Я написал свою собственную версию метода DatabaseUtils.cursorRowToContentValues о котором Дэвид-му упомянул во избежание ошибок при анализе булевых элементов . Он запрашивает, чтобы Cursor анализировал ints и плавал на основе типов в базе данных SQL, а не анализировал их при вызове методов в ContentValues .

 public static ContentValues cursorRowToContentValues(Cursor cursor) { ContentValues values = new ContentValues(); String[] columns = cursor.getColumnNames(); int length = columns.length; for (int i = 0; i < length; i++) { switch (cursor.getType(i)) { case Cursor.FIELD_TYPE_NULL: values.putNull(columns[i]); break; case Cursor.FIELD_TYPE_INTEGER: values.put(columns[i], cursor.getLong(i)); break; case Cursor.FIELD_TYPE_FLOAT: values.put(columns[i], cursor.getDouble(i)); break; case Cursor.FIELD_TYPE_STRING: values.put(columns[i], cursor.getString(i)); break; case Cursor.FIELD_TYPE_BLOB: values.put(columns[i], cursor.getBlob(i)); break; } } return values; } 

Вы можете перейти к thenewboston , для SQLite (и с использованием ContentValues) существует ссылка на 111-124: D

Во всяком случае, тот, который он преподавал о ContentValues, находится в 117-м

Удачи: D

PS: Но он также использует курсор 🙂

Нет. Вы должны сделать это с помощью курсора и старого хорошего запроса. Я был бы рад, если бы запрос мог вернуть массив объектов CV.

Нет, вам нужно использовать Cursor .