- •Ос. Лабораторная работа №2 знакомство с пРограммированием на java. Програмирование расчетного android-приложения
- •Задание на разработку
- •Теоретические сведения.
- •Программный код на Java
- •Использование операторов Import для подключения классов из sdk Android
- •Класс MainActivity – инфраструктура приложения
- •Метод onCreate() класса MainActivity – создание инфраструктуры приложения
- •Метод onCreateOptionsMenu() класса MainActivity – создание меню приложения
- •Реализация приложения Tip Calculator
- •Инструкции package и import
- •Класс ActionBarActivity и жизненный цикл активностей приложения Tip Calculator
- •Метод onOptionsItemSelected() класса MainActivity – обработка щелчков (касаний) элементов панели действий
- •Поля (переменные) класса
- •Переопределение метода OnCreate() класса MainActivity
- •Разработка метода updateStandard() класса MainActivity
- •Разработка метода updateCustom() класса MainActivity
- •Переопределение метода onSaveInstanceState() класса Activity
- •Анонимный внутренний класс, реализующий интерфейс OnSeekBarChangeListener
- •Анонимный внутренний класс, реализующий интерфейс TextWatcher
- •Завершение разработки класса MainActivity и всего приложения
Поля (переменные) класса
В листинге ниже приведены поля (переменные), которые нужно объявить в классе MainActivity:
// константы, используемые при сохранении/восстановлении состояния
private static final String BILL_TOTAL = "BILL_TOTAL";
private static final String CUSTOM_PERCENT = "CUSTOM_PERCENT";
private double currentBillTotal; // счет, вводимый пользователем
private int currentCustomPercent; // % чаевых, выбранный SeekBar
private EditText tip10EditText; // 10%-чаевые
private EditText total10EditText; // общий счет, включая 10%-чаевые
private EditText tip15EditText; // 15%-чаевые
private EditText total15EditText; // общий счет, включая 15%-чаевые
private EditText billEditText; // ввод счета пользователем
private EditText tip20EditText; // 20%-чаевые
private EditText total20EditText; // общий счет, включая 20%-чаевые
private TextView customTipTextView;// % пользовательских чаевых
private EditText tipCustomEditText;// пользовательские чаевые
private EditText totalCustomEditText; // общий счет
// с пользовательскими чаевыми
Большинство из этих переменных представляют собой указатели на объекты, представляющие компоненты EditText (окна редактирования текста), используемые для ввода выставленного счета пользователем, а также для отображения вычисленной суммы чаевых и общего счета (с учетом чаевых). Константы в строках 18–19, объявленные со спецификаторами static и final, используются в качестве ключей в парах «ключ/значение» для представления текущего итогового счета и пользовательских процентных ставок чаевых. Пары «ключ/значение» хранятся и выбираются с помощью методов SaveInstanceState() и onCreate() соответственно (при изменении конфигурации приложения).
Выставленный счет, введенный пользователем в окно редактирования billEditText, считывается и хранится в виде числа с плавающей точкой в переменной currentBillTotal. При этом требуется выполнение определенного преобразования, суть которого будет объяснена позже. Пользовательская процентная ставка чаевых, выбираемая пользователем с помощью ползунка Seekbar (целое число, находящееся в диапазоне 0–100), сохраняется в целой переменной currentCustomPercent. Это значение умножается на 0.01 для преобразования в тип данных double, используемый в вычислениях. Сумма пользовательских чаевых и общий счет, включая пользовательские чаевые, устанавливаются в компонентах tipCustomEditText и totalCustomEditText, соответственно. В строке 30 объявляется переменная, указывающая на объект TextView, в котором отображается процентная ставка пользовательских чаевых, соответствующая отображаемой позиции ползунка SeekBar.
Фиксированные процентные ставки чаевых, равные 10%, 15% и 20%, а также итоговые счета (с учетом чаевых) отображаются в соответствующих элементах EditText. Сумма чаевых, подсчитанная с учетом ставки 10%, и сумма итогового счета (вместе с чаевыми, подсчитанными по ставке 10%) передаются в объекты tip10EditText и total10EditText, соответственно. Сумма чаевых, подсчитанная с учетом ставки 15%, и сумма итогового счета (вместе с чаевыми, подсчитанными по ставке 15%) передаются объектам tip15EditText и total15EditText. Сумма чаевых, подсчитанная с учетом ставки 20%, и сумма итогового счета (вместе с чаевыми, подсчитанными по ставке 20%) присваиваются объектам tip20EditText и total20EditText.
