Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС. Лаборная работа №2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
448 Кб
Скачать

19

Ос. Лабораторная работа №2 знакомство с пРограммированием на java. Програмирование расчетного android-приложения

Цель работы: Научиться разрабатывать расчетные приложения на языке Java для мобильной платформы Android.

Задание на разработку

Приложение Tip Calculator, графический интерфейс которого был спроектирован в предыдущей работе, должно вычислять и отображать чаевые на основании суммы счета в ресторане (рис. 1).

Рисунок 1. Ввод суммы счета и подсчет чаевых: а — начальный интерфейс

пользователя, появляющийся после касания пользователем компонента Bill total и отображения цифровой клавиатуры; б — интерфейс пользователя после ввода выставленного счета на $123,45 и изменения процентной ставки чаевых на 17%

После ввода пользователем суммы счета приложение вычисляет и отображает размер чаевых и величину итогового счета (с учетом чаевых). При этом для расчета чаевых используются три процентные ставки: 10%, 15% и 20%. Пользователь может указать собственную ставку, используемую при расчете чаевых. Для этого нужно переместить ползунок компонента Seekbar, после чего обновляется величина процентной ставки, которая отображается в правой части компонента SeekBar. В качестве заданной по умолчанию пользовательской процентной ставки для чаевых выбрана величина 18%. Это связано с тем, что многие рестораны используют эту процентную ставку для компаний, состоящих из шести человек и более. Предполагаемые величины чаевых и общего счета могут быть изменены пользователем.

Теоретические сведения.

При разработке приложения для Android используются объектно-ориентированные свойства Java, включая классы, анонимные внутренние классы, объекты, методы, интерфейсы и наследование. В частности, используется подкласс (производный класс) класса Activity, с помощью которого определяется, что произойдет в случае запуска приложения на выполнение, а также в него вкладывается вся логика приложения Tip Calculator, в частности, программное взаимодействие между компонентами EditText, TextView и SeekBar. Для организации взаимодействия между пользователем и интерфейсом пользователя будут применяться обработка событий и анонимные внутренние классы.

Программный код на Java

Откройте для просмотра и редактирования текст файла MainActivity.java в папке java/com.example.имя_компьютера.tipcalculator окна Project (рис. 2).

Рисунок 2. Код файла MainActivity.java, автоматически сгенерированный Android Studio и готовый для последующего редактирования

Для того, чтобы увидеть все инструкции import, имеющиеся перед объявлением класса MainActivity нужно щелкнуть по значку "+" с надписью import … .

Использование операторов Import для подключения классов из sdk Android

Перед инструкциями объявлением класса MainActivity имеется четыре инструкции import, которые ссылаются на другие классы, используемые в классе MainActivity и его методах:

Первый метод класса onCreate() использует класс Bundle, импортируемый инструкцией в строке 3. Класс Bundle из пакета android.os представляет информацию о состоянии приложения. Приложение может сохранять свое состояние в случае перевода в фоновый режим операционной системой (например, если пользователь запускает другое приложение или принимает телефонный звонок).

Класс ActionBarActivity, который импортируется из пакета android.support.v7.app инструкцией в сроке 2, является базовым (суперклассом) для нашего класса MainActivity. Класс ActionBarActivity обеспечивает функционирование активностей с панелью действий (action bar) и, в конечном счете, является косвенно (через класс FragmentActivity) производным от класса Activity из пакета android.app, который поддерживает базовые методы жизненного цикла приложения (эти методы будут рассмотрены ниже).

Инструкция в строке 4 импортирует класс Menu, объект которого передается в качестве аргумента второму методу нашего класса onCreateOptionsMenu(). В рамках активности класс Menu обеспечивает создание и функционирование меню выбора опций, которое открывается при нажатии на мобильном устройстве кнопки <MENU> или вертикального троеточия на панели действий на устройствах без кнопки <MENU>.

Наконец, инструкция в строке 5 импортирует класс MenuItem, объект которого передается в качестве аргумента третьему методу рассматриваемого класса onOptionsItemSelected(), обеспечивающего работу с элементами меню.