|
2 / 2 / 2
Регистрация: 18.07.2017
Сообщений: 46
|
||||||
Загрузка базы данных из файла, в классе SQLite БД07.08.2017, 16:11. Показов 3318. Ответов 8
Метки нет (Все метки)
Здравствуйте.
Есть метод loadBDOfWordsToList(), который из текстового файла читает слова и добавляет их в коллекцию. Нужно перенести его из метода onCreate() в класс DBHelper и вызывать его только в случае, если версия базы данных обновилась. Если тупо перенести его в класс DBHelper в метод onCreate(SQLiteDatabase db) то выскакивает эксепшен, в котором говорится, что только основной класс имеет доступ к ресурсам. В данном случае я при открытии приложения, вызываю метод по загрудки БД и передаю в конструкторе коллекцию базой, а в DBHelper-e читаю слова с коллекции и добавляю их в SQLite БД. Но как по мне, такая реализация не правильная. Как правильно загружать базу из файла в таком случае?
0
|
||||||
| 07.08.2017, 16:11 | |
|
Ответы с готовыми решениями:
8
Восстановить поврежденный файл базы данных SQLite (сделать дамп запароленного файла базы данных) Загрузка данных из базы firebird и формирование XML файла Загрузка данных из файла txt в определенные столбцы базы |
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 07.08.2017, 18:22 | |
|
BargystVelp, сделайте наследника application и поместите базу в его статическое поле, сам класс базы может быть оформлен отдельным файлом, если нужен контекст - передайте ему контекст равный контексту наследника application
1
|
|
|
2 / 2 / 2
Регистрация: 18.07.2017
Сообщений: 46
|
||||||
| 07.08.2017, 19:44 [ТС] | ||||||
|
че та я тут намудрил.... в итоге такой эксепшн в момент создания объекта класса ApplicationDB.
NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference Не очень понял, как правильно это сделать.
в 93-й строчке.
0
|
||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 08.08.2017, 08:19 | |
|
BargystVelp, не понимаю к чему этот ад? Зачем new висящий в воздухе? Зачем создание application? Его должна создать сама система - пропишите в манифест в name имя класса - вам он нужен просто как надежное место хранения статики.
0
|
|
|
2 / 2 / 2
Регистрация: 18.07.2017
Сообщений: 46
|
|
| 09.08.2017, 16:03 [ТС] | |
|
Я не врубаюсь..
Мне нужно по факту, перенести метод loadBDOfWordsToList() в метод класса DBHelper. Там я его вызвать не могу так как класс не имеет доступа к папке res/raw. Наследоваться этим классом я тоже не могу, так как он и так наследуется от класса SQLiteOpenHelper. Я знаю, что если переделать коллекцию в статику, то она будет доступна всем классам, но суть проблемы не в том, чтобы организовать надежное хранилище, а в том, чтобы метод вызывался только в случае, если версия БД поменялась, а не каждый раз при запуске активити.
0
|
|
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
| 09.08.2017, 16:15 | |
|
Использовать метод onUpgrade, не?
0
|
|
|
2 / 2 / 2
Регистрация: 18.07.2017
Сообщений: 46
|
|
| 09.08.2017, 16:25 [ТС] | |
|
ExFau$t, В классе DBHelper?
Добавлено через 5 минут В таком случае метод getResources() подсвечивается красным. InputStream inputStream = getResources().openRawResource(R.raw.dat a_base_of_words);
0
|
|
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
||||||
| 09.08.2017, 17:11 | ||||||
Сообщение было отмечено BargystVelp как решение
Решение
1
|
||||||
|
2 / 2 / 2
Регистрация: 18.07.2017
Сообщений: 46
|
|
| 09.08.2017, 18:05 [ТС] | |
|
ExFau$t, Да, все работает. Спасибо!
0
|
|
| 09.08.2017, 18:05 | |
|
Помогаю со студенческими работами здесь
9
Написать функции для считывания данных о выбранных сущностях из базы данных SQLite Загрузка файла на сервер, добавление в базу данных ссылки и вывод ссылки из базы
Постолбцовое отображение данных из базы данных SQLite Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|