Добавлен: 21.10.2018
Просмотров: 403
Скачиваний: 5
ЛАБОРАТОРНАЯ РАБОТА №1
ПРОГРАММИРОВАНИЕ МЕНЮ И ИНТЕРФЕЙСОВ ПОЛЬЗОВАТЕЛЯ
Цель работы: изучить и освоить работу с интерфейсами пользователя и меню.
Порядок выполнения работы
При домашней подготовке самостоятельно на основе материалов лекций, справочной системы соответствующих средств разработки и отладки, а также рекомендуемой литературы изучить:
-
Создание меню с помощью средств разработки Eclipse;
-
Обработку событий меню;
-
Процедуру вывода сообщений в окно мобильного устройства;
-
Программное создание и обработку событий меню;
-
Работу с элементами управления (кнопками, текстовыми полями);
-
Программное и динамическое описание обработчиков нажатий кнопок;
-
Настройку внешнего вида элементов управления.
Задание
Разработать Android-приложение, которое содержит меню, поле ввода (EditText), несколько текстовых полей (TextView) и несколько кнопок (Button).
В одном из текстовых полей вывести фамилию, имя студента, номер варианта и название группы студента.
По обработчику одной из кнопок меняется Layout формы на произвольный с обязательным наличием одной кнопки, по нажатию на которую Layout возвращается. По обработчику еще одной из кнопок форма переводится в графический режим, где выводится та же информация (фамилия, имя, группа, вариант). Для третьей кнопки написать объект-обработчик, который выводит в текстовое поле (TextView) содержимое поля ввода (EditText). Расположение и функциональность остальных кнопок определяется вариантом. Обработчики этих трех кнопок сделать: с помощью поля android:onClick, с помощью динамического создания экземпляра OnClickListener и с помощью подключения интерфейса OnClickListener и создания функции OnClick().
На этапе разработки приложения разместить меню с пунктами «Первый», «Второй», «Третий» и т.д. (количество пунктов меню и их функциональность определяется вариантом). По умолчанию (если не указано обратное) для пункта меню «Первый» создать обработчик с использованием поля android:onClick, для пункта меню «Второй» – с помощью объекта-обработчика, описывающего интерфейс MyMenuItemClickListener, для пункта меню «Третий» с использованием метода onOptionsItemSelected().
Первый пункт меню должен выдавать соответствующее Toast-сообщение, второй пункт меню – выводить текст в логе (Log). Третий пункт меню должен вывести диалог с информационным сообщение. Четвертый пункт меню - реализовывать функциональность, если это определено в таблице вариантов.
Содержание отчета
-
Титульный лист.
-
Исходный текст программы на языке java.
-
Текст формы в формате xml
-
Экранные формы работы программы на эмуляторе.
-
Выводы
Контрольные вопросы, возможные темы дополнительных заданий.
-
Создание Layout-ов с различными свойствами;
-
Создание графических Layout-ов и рисование на них;
-
Динамическая генерация кнопок и их обработчиков;
-
Динамическая генерация меню и их обработчиков;
-
Работа с контекстными меню;
-
Создание диалоговых окон.
Литература
-
Горнаков С. Программирование мобильных телефонов на Java2 Micro Edition.
Индивидуальные задания к лабораторной работе
А) Задание по внешнему виду формы:
Вариант |
Количество кнопок и меню |
Расположение кнопок |
Количество пунктов меню |
1 |
3 кнопки (50%, 25%, 25%) |
Горизонтально |
3 |
2 |
9 кнопок (одинаковых) |
3 х 3 |
3 |
3 |
3 кнопки (50%, 25%, 25%) |
Вертикально |
3 |
4 |
8 кнопок (одинаковых) |
3 х 3, центральной кнопки нет |
3 |
5 |
2 кнопки (60%, 40%) |
Горизонтально |
3 |
6 |
3 кнопки (50%, 25%, 25%) |
Вертикально |
4 |
7 |
3 кнопки (макс, мин, мин) |
Горизонтально |
4 |
8 |
3 кнопки (макс, мин, мин) |
Вертикально |
4 |
9 |
9 кнопок (одинаковых, центральная кнопка вдвое шире, чем все остальные) |
3 х 3 |
4 |
10 |
9 кнопок (одинаковых, центральная кнопка окружена отступом в 20 пикселей) |
3 х 3 |
4 |
11 |
9 кнопок (одинаковых, все угловые кнопки вдвое шире, чем все остальные) |
3 х 3 |
5 |
12 |
9 кнопок (верхний и нижний ряды вдвое уже, чем центральный) |
3 х 3 |
5 |
13 |
9 кнопок (верхний и нижний ряды вдвое шире, чем центральный) |
3 х 3 |
5 |
14 |
3 кнопки (25%, 50%, 25%) |
Горизонтально |
5 |
15 |
9 кнопок (одинаковых) |
3 х 3 |
5 |
16 |
3 кнопки (25%, 50%, 25%) |
Вертикально |
3 |
17 |
8 кнопок (одинаковых) |
3 х 3, центральной кнопки нет |
3 |
18 |
2 кнопки (40%, 60%) |
Горизонтально |
3 |
19 |
2 кнопки (40%, 60%) |
Вертикально |
3 |
20 |
3 кнопки (мин, мин, макс) |
Горизонтально |
3 |
21 |
3 кнопки (мин, мин, макс) |
Вертикально |
4 |
22 |
9 кнопок (одинаковых, центральная кнопка вдвое шире, чем все остальные) |
3 х 3 |
4 |
23 |
9 кнопок (одинаковых, центральная кнопка окружена отступом в 20 пикс.) |
3 х 3 |
4 |
24 |
9 кнопок (одинаковых, все угловые кнопки вдвое шире, чем все остальные) |
3 х 3 |
4 |
25 |
9 кнопок (верхний и нижний ряды вдвое уже, чем центральный) |
3 х 3 |
4 |
Б) Задание по динамической настройке меню и кнопок
Вариант |
Действия |
1 |
Пункт меню «Второй» должен начинать работать только после нажания второй кнопки (использовать setOnMenuItemClickListener), пункт меню «Третий» - только после нажатия третьей кнопки (полностью динамически создавать новый объект OnMenuItemClickListener). |
2 |
Третий пункт меню должен добавлять еще одну кнопку, которая имеет такую же ширину, как и соседняя с ней. |
3 |
Третий пункт меню должен добавлять еще один пункт меню, который выводит сообщение в Toast. |
4 |
Вторая кнопка должна добавлять еще один пункт меню, который выводит сообщение в лог. |
5 |
Вторая кнопка добавляет дополнительно еще один пункт меню (максимально можно добавить 3 пункта). |
6 |
Во время первого выбора третий пункт меню меняет надпись на первой кнопке, во время второго – на второй кнопке, во время третьего – на третьей кнопке. |
7 |
Нажатие на вторую кнопку делает ее максимальной по размеру, а остальные – минимальными, нажатие на третью – ее максимальной по размеру, остальные – минимальными. |
8 |
Вторая кнопка добавляет дополнительно еще одну кнопку, которая имеет такую же ширину, как и соседняя с ней. |
9 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, номер выбранного пункта выводится в логе |
10 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, номер выбранного пункта выводится в Toast. |
11 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, первые три пункта меню меняют текст на первой, второй и третьей кнопках соответственно. |
12 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, второй пункт меню динамически добавляет еще один пункт меню, третий пункт меню добавляет к новому пункту обработчик, четвертый пункт меню – переписывает обработчик, добавленный третьим пунктом. |
13 |
Пункт меню «Второй» должен начинать работать только после нажания второй кнопки (использовать setOnMenuItemClickListener), пункт меню «Третий» - только после нажатия третьей кнопки (полностью динамически создавать новый объект OnMenuItemClickListener). |
14 |
Третий пункт меню должен добавлять еще одну кнопку, которая имеет такую же ширину, как и соседняя с ней. |
15 |
Третий пункт меню должен добавлять еще один пункт меню, который выводит сообщение в Toast. |
16 |
Вторая кнопка должна добавлять еще один пункт меню, который выводит сообщение в лог. |
17 |
Вторая кнопка добавляет дополнительно еще один пункт меню (максимально можно добавить 3 пункта). |
18 |
Во время первого выбора третий пункт меню меняет надпись на первой кнопке, во время второго – на второй кнопке, во время третьего – на третьей кнопке. |
19 |
Нажатие на вторую кнопку делает ее максимальной по размеру, а остальные – минимальными, нажатие на третью – ее максимальной по размеру, остальные – минимальными. |
20 |
Вторая кнопка добавляет дополнительно еще одну кнопку, которая имеет такую же ширину, как и соседняя с ней. |
21 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, номер выбранного пункта выводится в логе |
22 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, номер выбранного пункта выводится в Toast. |
23 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, первые три пункта меню меняют текст на первой, второй и третьей кнопках соответственно. |
24 |
Обработчик нажатия всех пунктов меню находится в OnMenuItemClickListener, второй пункт меню динамически добавляет еще один пункт меню, третий пункт меню добавляет к новому пункту обработчик, четвертый пункт меню – переписывает обработчик, добавленный третьим пунктом. |
25 |
По нажатию на вторую кнопку для всех пунктов меню, кроме первого, динамически устанавливается один и тот же Listener. |