23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
|
1 | |
Как загружать/хранить файл в SQLite?12.02.2015, 21:35. Показов 11154. Ответов 17
Метки нет (Все метки)
Есть список, нужно по клику на айтеме открывать текстовый файл или картинку, и вопрос стоит в том как их доблять к определенному айтему с сохранением в SQLite (ну т.е. добавил файл и когда надо открыл), ну или как это вообще делается?
1. какой принцип? 2. какой примерно код должен быть на кнопке выбора файла? 3. как этот файл или его путь должен и сохраняться в sqlite или ресурсах? Подскажите пожалуйста!
0
|
12.02.2015, 21:35 | |
Ответы с готовыми решениями:
17
Безопасно ли хранить данные в SQLite? Где хранить текстовый файл Как правильно загружать изображения? Как загружать картинки на стену Вконтакте? |
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
13.02.2015, 09:14 | 2 |
Картинки храните в assets/files/drawable, а в бд пути к файлам. Считываете то что в итеме и соответсвенно ему читаете путь к картинке.
0
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
|
13.02.2015, 09:22 [ТС] | 3 |
Rube, рад видеть...
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
13.02.2015, 11:51 | 4 |
В БД файлы как таковые не хранятся, только пути у ним, загрузить с карты вполне возможно (я с этим не работал еще), но не в assets (т.к. эта папка доступна только при разработке приложения, как и drawable), а в пространство приложения (напр. в папку files).
Как запилить путь к файлу в БД - сперва надо сохранить файл, а в БД вставить путь - пара строк кода. Получить путь тоже легко.
0
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
||||||||||||||||
20.02.2015, 16:59 [ТС] | 5 | |||||||||||||||
Rube, таки "Продолжаем разговор" ©Карлсон.
научился закидывать путь на картинку которая хранится на SD-карте в создаваемой программой папке в базу SQLite.
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
21.02.2015, 22:00 | 6 |
Я думаю надо открывать новый активити с ImageView. Путь получаем из БД путем чтения id из адаптера и кидаем его в источник для ImageView. Как-то так.
0
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
|||||||||||
23.02.2015, 11:11 [ТС] | 7 | ||||||||||
Rube,
если да то с id_col понятно, а откуда адаптер знает id ?
P/S/ наклевывается такая мысля:
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|||||||||||
23.02.2015, 21:46 | 8 | ||||||||||
Если не путаю, arg3 это порядковый номер итема в листвью, отсюда получаем значение адаптера по позиции arg3. Т.е. данные адаптера и отображение в листвью это одно и тоже.
Добавлено через 3 минуты А путь картинки из БД получите запросом после нахождения значения из адаптера. Т.е. найти путь WHERE полетакоето = 'значение'.
0
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
||||||
24.02.2015, 11:34 [ТС] | 9 | |||||
Rube, значение из адаптера это - String st=String.valueOf(arg3); ?
запрос как-то так должен быть "SELECT*FROM 'DB_TABLE' WHERE 'lnk'='что здесь должно быть?'" lnk - это столбец где хранятся пути. куда вставлять этот запрос? Добавлено через 10 минут во второй активити сделал так:
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
||||||
24.02.2015, 12:36 | 10 | |||||
"SELECT lnk FROM 'DB_TABLE' WHERE 'поле1' = тут значение из адаптера, что там у вас в листвью отображается?
Я не могу уже отвечать на вопросы в слепую, не зная полной картины приложения. Допустим в бд хранятся дни недели (day) и пути к картинкам (path), заполняем листвью курсорадаптером так: "SELECT day FROM 'DB_TABLE' Щелкаем по итему Среда, значит arg2 = 2
"SELECT path FROM DB_TABLE WHERE day = 'Среда'"
0
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
||||||||||||||||
24.02.2015, 13:01 [ТС] | 11 | |||||||||||||||
Rube, Извиняюсь, но чета совсем потерял "нить повествования"......
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
||||||
24.02.2015, 13:17 | 12 | |||||
Сообщение было отмечено disx как решение
Решение
1
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
||||||
24.02.2015, 16:00 [ТС] | 13 | |||||
Rube,
ну т.е. получается что в моем случае SQL-запросы не нужны? заработало, но еще некий затык, когда в приложении картинка сохраняется с фотика файл имеет путь /mnt/sdcard/Cribe/Photo/file.jpg с ним все ок, открывается (сетится в ImageView). а если мы просто выбираем файл в галерее или папке то onActivityResult и в нем
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
24.02.2015, 17:21 | 14 |
Ну наконец-то!
Разрешение в Манифесте есть? Гляди в логах что пишет.
0
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
||||||
24.02.2015, 19:14 [ТС] | 15 | |||||
Rube, в манифесте разрешения такие:
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
25.02.2015, 09:54 | 16 |
Ну не знаю чем помочь, пробуйте методом тыка. Может путь некорректный, может картинка большая и нужно ее изменять, может еще что.
0
|
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
|
|
26.02.2015, 22:09 [ТС] | 17 |
может есть какой другой способ отображения картинки с путем вида /external/images/media/**** ?
0
|
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
|
|||||||||||||||||||||
27.02.2015, 08:42 | 18 | ||||||||||||||||||||
Мучился примерно с такой же задачей.
По порядку В папке assets файлы доступны только для чтения. Эта папка нужна для того чтобы вы могли положить туда свои файлы и сконвертировать их в исполняемый файл. Доступ к этим файлам осуществляется через Assetsmanger. Рекомендация создаете new Folder в папке Assets. Имя должно быть уникальным, так чтобы юзер не создавал у себя на устройстве такую же папку. Например так, путь к этим файлам выглядит как "PoliglotDictonaryPictures/hold.jpeg" Узнать где находится ваш файл в папке assets или на устройстве можно по пути анализируя путь как строку. Вот код как я это сделал. Загружаю картинку путь к которой хранится в бд.
В активити приемнике соотв прописываем.
Пути к файлам находящимся SdCard или на устройстве прописываются соотв. String patch="/mnt/sdcard/DictonaryPictures/may.jpeg"; String patch="/data/ProbaFolder/ImageDict/let.jpeg"; если делаете проект в эклипсе, то с SdCard целый квест подробно описал тут.http://forum.startandroid.ru/v... 320b9cac35 П.С. Коды рабочие, но еще не закончены, есть лишние строки.
0
|
27.02.2015, 08:42 | |
27.02.2015, 08:42 | |
Помогаю со студенческими работами здесь
18
Как загружать стринги из сети в TextViev Как при появлении Wifi загружать данные Как удобнее загружать огромный массив в приложение? Не могу найти где лежит файл базы SQLite Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |