- •Ос. Лабораторная работа №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 – инфраструктура приложения
Объявление класса в Java производится с помощью ключевого слова class перед именем класса. В данном случае класс называется MainActivity, и он доступен для любого другого кода, так как он объявлен общедоступным с помощью ключевого слова public перед ключевым словом class. Класс MainActivity наследует (или, что то же самое, расширяет – extends) базовый класс (или суперкласс - super class) ActionBarActivity (класс, представляющий активность с панелью действий приложения Android), который перед этим был импортирован инструкцией:
import android.support.v7.app.ActionBarActivity;
Таким образом, объявление класса MainActivity выглядит следующим образом:
public class MainActivity extends ActionBarActivity { ... }
Метод onCreate() класса MainActivity – создание инфраструктуры приложения
Первый метод класса onCreate() объявлен как public, т. е. общедоступен, и как void, т. е. он ничего не возвращает вызвавшей ей функции (в данном случае ОС Android). Этот метод автоматически вызывается ОС Android и создает начальную активность - экран взаимодействия с пользователем. В качестве аргумента ОС Android передает методу onCreate() объект saveInstanceState класса Bundle, который содержит состояния и настройки элементов интерфейса активности в виде связки (bundle) значений и настроек.
Тело метода onCreate() составляют инструкции вызова двух методов. Вызов первого метода использует ключевое слово super, чтобы передать объект saveInstanceState класса Bundle методу onCreate() базового класса (суперкласса) ActionBarActivity. Вызов второго метода setContentView() с передачей ему ссылки на разработанный в предыдущей работе XML-файл activity_main.xml, находящийся в папке layout, отображает на экране содержимое главной активности приложения. Эта инструкция выглядит следующим образом:
setContentView(R.layout.activity_main);
где R – путь к папке, в которой содержится папка layout проекта TipCalculator, например, C:\ЛБ3\TipCalculator\app\src\main\res\, так что R.layout.activity_main преобразуется в файл:
C:\ЛБ3\TipCalculator\app\src\main\res\layout\activity_main.xml
Таким образом, метод setContentView() загружает XML-разметку нашей активности в класс, производный от базового класса ActionBarActivity (вспомним, что класс MainActivity наследует класс ActionBarActivity).
Метод onCreateOptionsMenu() класса MainActivity – создание меню приложения
Второй метод класса onCreateOptionsMenu() служит для создания меню выбора опций активности, которое открывается при нажатии на мобильном устройстве кнопки <MENU> или вертикального троеточия на панели действий на устройствах без кнопки <MENU>.
Меню активности создается из XML-файла main.xml (размещенного в папке res/menu проекта), используя метод onCreateOptionsMenu() с аргументом menu класса android.view.Menu, импортированного четвертой инструкцией import.
Тело метода onCreateOptionsMenu() состоит из одной основной инструкции и инструкции return. В основной инструкции на объекте, возвращенном вызовом метода getMenuInflater(), вызывается метод inflate(), которому передается два аргумента: menu, который был передан методу onCreateOptionsMenu (Menu menu), и XML-файл menu_main.xml из папки menu, передаваемый посредством уже знакомой конструкции R.menu. menu_main, обозначающей файл:
C:\ЛБ3\TipCalculator\app\src\main\res\menu\menu_main.xml
Таким образом, метод .inflate() принимает объект menu и наполняет его, руководствуясь XML-определением меню, содержащемуся в указанном выше файле. Как только меню активности будет сформировано и станет готовым е использованию, метод возвращает ОС Android значение true.
