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

Класс 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.