Архитектура приложения Android - просмотр XML-файла - PullRequest
1 голос
/ 15 июня 2011

Это скорее общий вопрос об архитектуре Android, и мне любопытно, что сообщество считает наилучшей практикой для такого рода усилий.Я разрабатываю приложение для Android, которое загружает XML-файл, который хранится на устройстве.Мой первый вопрос: когда вы работаете с отформатированным XML-файлом в области приложения Android, и основной целью приложения является своего рода «просмотр» через узлы XML, разумнее ли «загрузитьXML "(не совсем уверен, что это за термин) в память и сделать это таким образом?Или разумнее взять xml, записать его во внутреннюю базу данных (все еще привыкая ко всей концепции SQL Lite), а затем просмотреть данные таким образом?Последнее кажется окольным путем, но я пытаюсь понять основные понятия здесь.

Это подводит меня ко второму вопросу.Если бы мне пришлось нарисовать, как «течет» информация из этого XML, я сразу же получил бы ответ на вопрос о том, что я знаю об Android, - о наборе ListViews.Узел 1 имеет 2 варианта.Это загружает два варианта в ListView.Когда вы нажимаете на первый узел, он переходит к соответствующему подузлу в xml, который имеет, скажем, четыре варианта.Я создаю ListView с 4 вариантами выбора.Ну и так далее.

Имеет ли это логический смысл?Я смотрю на подход неправильно?Есть ли лучший способ сделать это, используя другой объект, который имеет больше смысла?Любые ссылки на вещи, которые уже были сделаны для меня, были бы полезны.Спасибо !!

Ответы [ 3 ]

1 голос
/ 15 июня 2011

Многое зависит от конкретного варианта использования и размера файла XML.Я думаю, что в большинстве случаев вам будет очень сложно поместить XML в базу данных, если у вас уже нет модели данных, представленной в XML и пригодной для постоянного хранения.Вы, конечно, не хотите делать это со случайным XML.

Если у вас небольшой XML, вы всегда можете загрузить его в память, используя DOM.Это облегчит навигацию.Но с большим XML, вам нужно рассмотреть некоторые API потоковой передачи (Stax) и читать непосредственно из файла.

1 голос
/ 15 июня 2011

Не конвертируйте XML в базу данных sqlite. Просто разбери это в памяти.

Что касается других ваших вопросов, у меня есть одно действие, которое начинается с ListActivity. Переопределите onListItemClick() и заставьте его снова начать свою деятельность с каким-то указателем на следующий элемент для просмотра.

Если вы сделаете это таким образом, стек действий будет вести себя хорошо, когда пользователь нажимает кнопку возврата.

0 голосов
/ 15 июня 2011

SQLite - это реляционная база данных, поэтому вам нужно хранить данные из xml в БД, только если вам нужно выполнить реляционную работу с данными (например, выбор / обновление / группировка и т. Д.) Если вам нужно просто пройти через DOM и что-то сделать (например, подсчитать конкретные узлы), я считаю, что вам не следует разбирать xml на DB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...