Создание динамических форм (лучший подход) - PullRequest
5 голосов
/ 28 марта 2012

Мне нужно разработать приложение для планшета Android. Это сделает следующее:

Я подключусь к веб-службе для получения динамического списка форм. Эти формы должны быть загружены, чтобы заполнить их в автономном режиме. Когда одна или несколько форм заполнены и приложение находится в режиме онлайн, пользователь может отправить их на сервер, нажав кнопку.

Эти формы будут динамическими. Там нет предопределенной формы. И к ним будут прикреплены одна или несколько картинок.

Моя проблема в том, что я не знаю, как это сделать.

Я думал:

  1. Я мог бы отправить форму в виде набора полей и их типов. После того, как я скачаю xml с веб-службы, мне придется пересобрать его, чтобы показать его пользователю.

  2. Отправить HTML-страницу с формой.

  3. HTML5 (с PhoneGap).

  4. ...

Я думаю, что второй вариант - лучший. Что ты думаешь?

Как только пользователь заполнил форму, как я могу сохранить ее данные? Если я использую веб-страницу, думаю, я могу сохранить ее как CSV.

Первым вариантом будет собственный интерфейс Android, поэтому я могу сохранить его на SQLite или в виде txt файла. Как я могу хранить заполненные формы?

И затем, когда пользователь возвращается в онлайн, как я могу отправить текстовый файл и изображение через веб-сервис?

Если у вас есть другой подход, вы можете поделиться им.

1 Ответ

4 голосов
/ 28 марта 2012

Я бы выбрал вариант 1, так как он более естественный ...

Быстрый мозговой штурм: Вы можете создать БД с таблицей: Forms (id, name ...), FormItems (id, formid, name, type, order ...), Data (id, FormItemsid, EntryId, value ...), Entries ( id, dateadded, отправлено ...)

Когда вы хотите показать форму, вы открываете действие и просматриваете все FormItems с этим formid (вы можете иметь LinearLayout (ориентация: вертикальный) и addView для каждого элемента)

Когда вы заполняете форму, создается новая запись, вы перебираете свои элементы формы и помещаете введенный текст в данные

Когда вы выходите в интернет, вы проверяете, какие записи еще не отправлены, и отправляете эти записи

Надеюсь, это было полезно!

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