Главная » Разработка для Android » ПОСТРОЕНИЕ ФОРМ ДЛЯ СБОРА ВВОДИМЫХ ПОЛЬЗОВАТЕЛЕМ ДАННЫХ – ЧАСТЬ 1

0

Вопросы, рассматриваемые в этом часе:

•             разработка дизайна и реализация экрана с настройками приложения;

•             работа с элементами EditText;

•             работа с элементами Button;

•             работа с элементами Spinner;

•             сохранение данных формы с использованием класса SharedPreferences.

В этом часе вы займетесь реализацией экрана с настройками приложения «Been There, Done That!». Экран с настройками представляет собой форму для ввода информации о конфигурации приложения, включая логин пользователя и настройки его профиля. Различные параметры предполагают использование различных элементов для ввода данных, включая элементы EditText, Spinner и Button. Наконец, вам нужно убедиться, что все настройки сохранены как часть конфигурации приложения.

РАЗРАБОТКА ДИЗАЙНА ЭКРАНА С НАСТРОЙКАМИ

Экран с настройками приложения должен позволять пользователю настраивать ряд параметров игры и сохранять их. Параметры игры могут быть представлены в виде текстовых полей ввода, раскрывающихся списков или в виде других, более сложных, элементов. (Со временем вы захотите добавить социальные возможности для совместной игры с друзьями, однако к этому требованию мы вернемся позже.) Пока же вы реализуете простой экран с настройками приложения, содержащий пять основных параметров:

•             Nickname (Ник). Имя, которое отображается в списках с результатами игры. Количество символов, вводимых при помощи этого поля ввода, не должно превышать 20 — это значение может быть другим, однако для ваших целей этой длины вполне достаточно.

•             Email. Уникальный идентификатор для каждого пользователя. Данный параметр представлен текстовым полем ввода.

•             Date of Birth (Дата рождения). Используется для проверки минимально допустимого возраста игрока в тех случаях, когда это необходимо. Данный параметр представлен в виде нескольких полей для ввода даты, взаимодействие с которыми не вызывает у пользователей никаких проблем.

•             Gender (Пол). Представляет часть демографической информации, которая может быть использована для формирования специальных таблиц с результатами или для таргетинга рекламы. Этот параметр может принимать три различных значения: Male (Мужской) (1), Female (Женский) (2) или Prefer Not to Say (He указано) (0).

На рис. 10.1 представлен эскиз дизайна экрана с настройками.

Рис. 10.1. Эскиз дизайна экрана с настройками приложения «Been There, Done That!»

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

Над заголовком экрана для каждого параметра вы добавите отдельную область. Поскольку со временем вам может потребоваться добавить новые параметры, вы должны поместить область экрана с настройками внутрь элемента ScrollView. В этом случае пользователь сможет увидеть все параметры, которые не умещаются на экране, просто прокрутив содержимое данной области. Элемент ScrollView может иметь только один дочерний элемент, поэтому вы можете включить ваши параметры в еще один элемент- контейнер LinearLayout с вертикальной ориентацией.

Каждый параметр будет представлен двумя строками в элементе-контейнере LinearLayout: строкой, представленной элементом TextView, с названием параметра, и строкой, содержащей элемент для ввода значения параметра. Например, для параметра Nickname (Ник) потребуется строка с элементом TextView, в котором будет отображаться название параметра (Nickname:), и строка для элемента EditText, позволяющего пользователю ввести текстовое значение.

Теперь вам нужно определить, какой элемент лучше всего подходит для каждого параметра:

•             Параметры Nickname (Ник) и Email представляют собой разновидности однострочного поля ввода, поэтому они могут быть представлены элементами

EditText.

•             Для параметра Password (Пароль) требуется использование двух элементов EditText. Однако сам пароль не должен вводиться непосредственно на экране с настройками. Вместо этого вы создадите элемент Button, который будет открывать диалоговое окно Dialog, позволяющее пользователю ввести пароль (при помощи двух элементов EditText). На основном экране с настройками может просто выводиться информация о том, был ли установлен пароль или нет, в элементе TextView.

•             Для параметра Date of Birth (Дата рождения) требуется элемент DatePicker. Поскольку элемент DatePicker фактически реализован при помощи трех отдельных элементов — для выбора месяца, дня и года, он занимает много пространства на экране. Поэтому, вместо того, чтобы добавлять этот элемент непосредственно на экран с настройками, вы можете добавить элемент Button, который будет использован для отображения диалогового окна DatePickerDialog. Пользователь выберет подходящую дату и закроет диалоговое окно, а указанная дата будет отображена (без возможности редактирования) на основном экране с настройками при помощи элемента TextView.

•             Параметр Gender (Пол) позволяет выбирать одно из трех значений, поэтому для реализации лучше всего подойдет элемент S pi nne r (раскрывающийся список).

На рис. 10.2 изображен дизайн-макет основного экрана с настройками.

Рис. 10.2. Дизайн-макет экрана с настройками приложения «Been There, Done That!»

РЕАЛИЗАЦИЯ МАКЕТА ЭКРАНА С НАСТРОЙКАМИ

Реализацию экрана с настройками вы начнете с добавления новых ресурсов в проект. Затем вы обновите файл макета settings.xml, чтобы отразить под­готовленный дизайн-макет экрана с настройками.

Добавление новых ресурсов в проект

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

ДОБАВЛЕНИЕ НОВЫХ СТРОКОВЫХ РЕСУРСОВ

На экране с настройками применяется множество новых строковых ресурсов. Вам нужно добавить следующие строковые ресурсы в файл ресурсов strings.xml:

•            текст для названия каждого параметра, отображаемого при помощи элемента TextView (например, NickName:);

•            текст для каждого элемента Button (например, SetPassword);

•             текст, который будет отображаться в элементе TextView при установленном и не установленном пароле;

•             текст, который будет отображаться в элементе TextView в том случае, когда значение параметра Date of Birth (Дата рождения) не установлено;

•             текст, который будет отображаться в элементе TextView в том случае, когда значения в двух полях для ввода пароля будут отличаться;

•            текст для каждого значения параметра Gender (Пол), используемого в элементе Spinner (например, «Male»).

Добавив все эти строковые ресурсы, сохраните файл ресурсов strings.xml. ДОБАВЛЕНИЕ НОВОГО РЕСУРСА СТРОКОВОГО МАССИВА

Элементы Spinner, как и элементы ListView, используют адаптеры данных. Вы определили строковые ресурсы, представляющие допустимые значения для параметра Gender (Пол), но вам еще нужно сгруппировать эти значения, чтобы получить подходящий набор данных.

Простейший набор данных — это массив значений типа String (и соответствующий класс ArrayAdapter). Чтобы сгруппировать строковые ресурсы, представляющие пол человека (Male, Female, Prefer Not To Say), в виде отдельного массива, нужно создать ресурс нового типа, называемый строковым массивом.

Чтобы создать ресурс строкового массива, вы должны добавить новый файл ресурсов с именем /res/values/arrays.xml. Внутри этого файла необходимо создать элемент string-array с именем genders. В созданный элемент string-array добавляется три элемента item — по одному для каждого строкового ресурса.

Предположим, что вы добавили в файл ресурсов strings.xml следующие три строковых ресурса, представляющих пол пользователя и которые были определены ранее: <string

name=”gender male”>Male</string> <string

name=”gender female”>Female</string> <string

name=”gender neutral”>Prefer Not To Say</string>

В файле ресурсов arrays.xml вы присваиваете каждому элементу item в строковом массиве genders соответствующий строковый ресурс. Например, первому элементу item в массиве (с индексом 0) будет присвоено значение @string/gender_neutral. Итоговое содержимое файла ресурсов arrays.xml будет выглядеть следующим образом:

<?xml version=”1.0″ encoding=”utf-8″?> <resources>

<string-array

name=”genders”>

<item>@string/gender neutral</item> <item>@string/gender male</item> <item>@string/gender female</item> </string-array> </resources>

Сохраните файл ресурсов arrays.xml. Теперь, когда вы захотите загрузить ресурс строкового массива genders в память, вы сможете обратиться к нему из кода приложения, используя идентификатор ресурса R.array.genders.

Обновление макета экрана с настройками

Файл макета settings.xml определяет пользовательский интерфейс экрана с настройками. Как и раньше, вы открываете редактор ресурсов среды разработки Eclipse и удаляете все существующие элементы из макета. После этого выполните следующие шаги, чтобы получить желаемый макет экрана на основе подготовленного дизайн-макета.

Добавьте уже ставший привычным элемент-контейнер LinearLayout, присвоив его атрибуту background значение @drawable/bkgrnd. Все остальные элементы будут добавляться внутрь этого элемента-контейнера LinearLayout.

Добавьте те же элементы, представляющие заголовок экрана, которые были добавлены на другие экраны.

Под заголовком экрана расположите элемент ScrollView, который будет содержать все параметры вашего приложения. Присвойте его атрибуту isScrollContainer значение true, а атрибуту scrollbars — значение vertical. Присвойте атрибутам layout_width и layout_height этого элемента значение

fill_parent.

Внутрь элемента ScrollView добавьте элемент-контейнер LinearLayout, в котором будут содержаться параметры приложения. Присвойте атрибуту orientation этого элемента значение vertical, а атрибутам layout_width и layout_height — значение fill_parent. Все последующие элементы будут добавлены внутрь данного элемента-контейнера LinearLayout.

Литература: Дэрси JI., Android за 24 часа. Программирование приложений под операционную систему Google/ ДэрсиЛ., КондерШ. — М.: Рид Групп, 2011. — 464 с. — (Профессиональные компьютерные книги). ISBN 978-5-4252-0318-2

По теме:

  • Комментарии