Topic: База данных SQLite

Обсуждение статьи о SQLite - Работаем с базой данных

Re: База данных SQLite

Как быть с базами данных, если мы хотим создать приложение, подобное Evernote? Задача в том, чтобы обеспечить доступ к одной и той же базе данных из windows-приложения, android-приложения, mac-приложения и ещё эти же логин и пароль, что мы используем для входа в приложение, должны использоваться при входе на официальный сайт приложения.

Re: База данных SQLite

В этом случае вам нужна общая база где-то на сервере. Приглядитесь к Firebase.

Re: База данных SQLite

Александр, качаю Ваш проект из статьи по ссылке http://developer.alexanderklimov.ru/and … qlite.zip. Открываю в Андроид студио, она ругается на гредл, и открывает проект криво, нет ни манифеста, ни части файлов отвечающих за работу с базой данных.

Re: База данных SQLite

А его и не нужно открывать в студии. Код нужно писать самостоятельно, а файлы можно открыть текстовым редактором, чтобы свериться. Манифест там есть. И файлы все на месте.

Re: База данных SQLite

alexander.klimoff wrote:

А его и не нужно открывать в студии. Код нужно писать самостоятельно, а файлы можно открыть текстовым редактором, чтобы свериться. Манифест там есть. И файлы все на месте.

Александр, да, там всё есть, файлы, ресурсы, манифест. Дело в том, что я создал в своём приложении Контент Провайдер, но он не работает, поэтому я хотел взять Ваш проект и подебажить его, понять, что куда передаётся, и т.п. Я могу конечно открыть в текстовом редакторе файлы и тупо сделать копи-паст в аналогичные файлы, но уже в студио, просто хочется меньше лишних движений.
Спасибо Вам огромное за этот замечательный сайт.

Re: База данных SQLite

Если не делать лишних движений, то вы не поймете, как работает код. На ошибках и учатся. Ищите ошибки, используя файлы для сравнения, анализируйте. Тогда вы лучше поймете принцип работы.

Re: База данных SQLite

Александр, добрый день!
Немного не уловил суть БД в моб приложениях. Скажите, во всех приложениях используются БД (неважно какая). Или в некоторых простых приложениях можно обойтись и без нее?
Поясню. Хочу сделать приложение вроде сайта визитки. Там будет главная активность с меню контакты, о компании и т.п. Из каждого пункта меню пользователь будет попадать на другую активность с текстом и 1-2 картинками. В этом случае нужно использовать БД? Или я могу текст хранить в Strings.xml и картинки в drawable?

Re: База данных SQLite

Конечно, можете обойтись. База данных нужна, когда требуются запросы. Например, сколько котов не старше 5 лет. Кто самый высокий и т.п. А вам запросы не нужны.

Re: База данных SQLite

Здравствуйте,
Предложение: а почему бы не использовать какой-нибудь элемент в виде таблицы с возможностью прокрутки для отображения содержимого БД? TextView может не вместить все данные из таблицы и новые записи не будет видно. Смысл в том, что во многих Ваших уроках используются одномерные массивы, а вот с двумерными (таблицами) я не встречал.

И второй момент. При копировании разметки активности с вводом новых записей элементы не упорядочиваются, а приложение падает при переходе на эту активность, даже после исправлений всех замечаний в разметке. ЗЫ Использую не Android Studio, а IntelliJ IDEA.  Но если все внести вручную, а не копировать, то все работает - активность открывается как положено.

ЗЫ Поскольку это первый пост, то хотел выразить благодарность за кропотливый труд! Ваши котоуроки правда очень помогают въехать в тему smile

Re: База данных SQLite

В Android нет готового компонента для отображения таблиц. Поэтому вам нужно самому придумывать свой велосипед, например, список с колонками. С двумерными массивами я практически не работал, поэтому и примеров нет.
Мне трудно судить, почему при копировани у вас падает приложение. Надо читать сообщения об ошибках, которая выдает IDE, неважно студия или IDEA. Где-то вы ошибаетесь.

Re: База данных SQLite

Отлично подготовленный материал! Ни одного вопроса по технике работы непосредственно с БД не осталось. Но зато появился один вопрос "около" этой темы: Как связать данные в БД с активностью EditorActivity, чтобы редактировать выбранную запись в БД? Ведь для идентификации записи требуется сохранить где-то ее _ID при вызове EditorActivity и потом при обновлении данных использовать его в WHERE. Как правильно это сделать?

Re: База данных SQLite

Не очень понятен вопрос. Id - это просто число. Как передать число в другую активность? Это есть в первых уроках.

Re: База данных SQLite

Если смотреть, как сделать правильно, то, вероятно, для отображения списка необходим адаптор, который соединит БД и список. А для редактирования и добавления желательно использовать возможности того же адаптора. Я не работал с андроидом и java, поэтому возникают чисто технические вопросы по используемым классам для наследования.

По поводу числа ID. Как правильней сделать? Это скрытое поле в разметке, приватный член с геттером и сеттером или публичный член? Я бы склонился к приватному. Но может впереди ждут какие-то особенности андроида. Что посоветуете?

Re: База данных SQLite

Советую сразу изучать Room и по примерам выберете лучший вариант для себя.

Re: База данных SQLite

Александр, спасибо за ваш труд! Всё работает норм.
Обновление записей и выборочное удаление тоже реализовал, всё просто..