Главная » Программирование игр под Android » ОСНОВЫ ANDROID API

0

В оставшейся части мы сосредоточимся на работе с теми API для Android, которые необходимы нам для игровых нужд. Для этого мы сделаем тестовый проект, содержащий все наши маленькие примеры для разных используемых нами API. Итак, начнем.

Создание тестового проекта

Из предыдущего раздела вы уже знаете, как создавать проекты. Поэтому для начала выполним те 10 шагов, о которых говорилось ранее. Я так и сделал, создав в итоге проект под названием ch04-android-basi cs с одной главной активностью AndroidBasicsStarter. Мы планируем использовать как старые, так и новые API, поэтому я установил параметр, задающий минимальную версию SDK, равным 3 (что соответствует Android 1.5), а целью сборки сделал версию SDK 9 (Android 2.3). Теперь нам необходимо создать реализации активности, каждая из которых демонстрирует различные части Android API.

Однако помните – у нас есть только одна главная активность. На что она будет похожа? Нам нужен удобный способ добавлять новые активности, а также возможность легко их запускать. Должно быть понятно, что главная активность должна каким-то образом позволять нам запускать определенную тестовую активность. Главная активность будет определена в файле манифеста как точка входа в приложение (как было описано ранее). Каждая дополнительная активность, которую мы добавим, будет определяться там же без дочерних элементов <intent-filter>. Она будет запускаться программно из главной активности.

Активность AndroidBasicsStarter

Android API предлагает специальный класс ListActivity, наследуемый от класса Activity (использованного нами в проекте Hello World). ListActivity – это специальный тип активности. Ее единственное назначение – демонстрировать список элементов (например, строк). Он понадобится нам для отображения названий наших тестовых активностей. При касании элемента списка запускается соответствующая активность. В листинге 4.1 приведен код нашей основной активности Androi dBasi csStarter.

Листинг 4.1. AndroidBasicsStarter.Java, наша главная активность, ответственная за демонстрацию списка и запуск тестовых активностей.

Выбранное мною название пакета – com.badlogiс.androidgames. Назначение импортируемых элементов должно быть очевидно – это просто все классы, которые мы собираемся использовать в нашем коде.

Наш класс AndroidBasicsStarter наследуется от класса ListActivity – все пока очевидно. Переменная tests представляет собой строковый массив, хранящий названия всех тестовых активностей, которые должно демонстрировать наше приложение. Обратите внимание – названия в этом массиве являются точными названиями классов активностей Java, которые мы позже реализуем.

Следующий кусок кода должен быть вам знаком. Это метод onC reate , который необходимо реализовывать для каждой нашей активности. Данный метод будет, вызываться при создании активности. Помните, что первым делом при вызове этого метода для активности мы должны вызывать метод onCreate базового класса, иначе активность не будет отображаться на экране.

После этого нашей следующей задачей является вызов метода setLi stAdapter , предлагаемого базовым классом Li stActivity. Он позволит нам определить элементы списка, которые мы хотим отобразить. Эти элементы передаются методу в виде экземпляра класса, реализующего интерфейс Li stAdapter. Для этого мы используем удобный Array Adapter. Конструктор этого класса принимает три аргумента: нашу активность, о втором я расскажу чуть позже и массив элементов, которые должна отображать ListActivity. Ранее мы уже определили переменную-массив tests для хранения этих элементов, поэтому можем использовать ее в качестве третьего аргумента.

Итак, что же это за второй параметр, передаваемый конструктору ArrayAdapter? Чтобы объяснить это, я должен рассказать о содержимом API Android для пользовательского интерфейса (который мы, вообще говоря, не будем использовать в этой е). Поэтому вместо того, чтобы тратить множество страниц на объяснение того, что нам на самом деле не понадобится, я дам вам простое объяснение: каждый элемент в списке демонстрируется с помощью объекта View. Второй аргумент конструктора определяет компоновку каждого объекта View, а также его тип. Его значение – android. R.  ayout. simpleist item l – является предопределенной константой, предлагаемой API пользовательского интерфейса. Эта константа означает, что мы используем стандартный список для отображения текста. Вообще говоря, View – это Android-виджет (как кнопка, текстовое поле или полоса прокрутки).

Если мы запустим активность методом onCreate, то увидим нечто похожее на рис. 4.2.

Рис. 4.2. Наша тестовая стартовая активность выглядит неплохо, но еще ничего не делает

Теперь настало время сделать так, чтобы при нажатии элемента списка что-то происходило. Нам необходимо запускать соответствующую активность при нажатии пункта списка.

Источник: Mario Zechner / Марио Цехнер, «Программирование игр под Android», пер. Егор Сидорович, Евгений Зазноба, Издательство «Питер»

По теме:

  • Комментарии