Урок 10. Создаём Activity

Теперь, вооружившись азами программирования можем использовать эти знания для улучшения нашего приложения. Для начала мы создадим новое окно в приложении (Activity), чтобы помимо окна меню было окно самой игры. Для этого мы воспользуемся возможностями графического редактора Android Studio, смонтируем нужные нам элементы на экран и далее запрограммируем все эти элементы используя наши Java знания о переменных, типах данных, объявлении, инициализации, операторах и выражениях с целью генерирования вопроса нашему предполагаемому пользователю. Также мы создадим ссылку из окна (Activity) меню в окно (Activity) игры.

 

Создаём новое окно (Activity)

  • Запускаем Android Studio и открывайте проект нашей игры (у меня это FirstGame, как назвали вы свой проект для меня неизвестно);
  • Создадим новую Activity, в которой и будет происходить действие нашей игры, после того как игрок в меню нажмёт кнопку «Play». Для того, чтобы создать Activity нам понадобиться новый layout файл и новый Java файл. К счастью Android Studio нам в этом поможет. Правым кликом по папке «src» в проводнике Проекта и в выпадающем меню жмём New – Activity;

new activity

  • Теперь нужно заполнить в появившемся диалоговом окне немного информации о новой Activity. Измените имя в поле Activity Name на Game Activity. Обратите внимание, что в поле Layout Name информация поменяется автоматически;

configure activity

  • Жмём кнопку «Finish». Android Studio автоматически для нас создаст два новых файла и внесёт новую информацию дополнительно в файл манифеста (AndroidManifest.xml);
  • Взгляните на вкладки в окне редактора кода и удостоверьтесь в появлении двух файлов – activity_game.xml и GameActivity.java. Выберите вкладку GameActivity.java;

new activity

Также отметим, что эти файлы автоматически добавились и в проводнике проекта:

new activity

Код в файле GameActivity на данный момент аналогичен коду файла MainActivity, за исключением пары моментов в названии. Объявление имени пакета и импортирование используемых классов, предоставленных самой Android Studio:

package com.example.user.firstgame;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

Создание новой Activity, именуемой GameActivity:

public class GameActivity extends AppCompatActivity {

Затем мы переопределяем метод onCreate  и используем метод setContentView, чтобы установить вид из графического редактора (пока еще пустого) на экран предполагаемого устройства игрока:

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
        }

Теперь можем заполнять экран игрового процесса.

 

Пользовательский интерфейс игрового экрана (GameActivity)

Как мы уже знаем, наша игра будет задавать вопрос пользователю и предлагать ему три варианта ответа, из которых он должен выбрать один. В эту игру можно будет добавить кучу всяких дополнительных функций, таких как сложность, очки рейтинга и т.д. Но пока будем придерживаться основной сути. Наша цель изображена на следующем скриншоте:

game activity android studio

Шаг за шагом:

  • Открываем вкладку activity_game.xml, если она еще не открыта. Вы также можете её найти в проводнике в папке «layout»;
  • Добавьте три элемента «TextView», как показано на скриншоте. Они должны быть на одной линии и находится друг от друга примерно на одинаковом расстоянии. На самом деле это не так важно. Просто так будет приятнее глазу:

textview android studio

Также обратите внимание, что в поле Component Tree все три объекта TextView появились и Android Studio автоматически присвоила им имена: textView, textView2, textView3:

component tree android studio

  • Android Studio относится к этим именам элементов через их «id». Это важная составляющая, которой мы и будем пользоваться. Чтобы удостовериться в этом выберите в дереве компонентов или же в самом окне графического редактора один из трёх элементов, кликнув по нему. Теперь на экране справа откроется окно свойств данного элемента, в котором помимо прочего будет поле «id»:

property of id component

Через ID мы будем взаимодействовать с пользовательским интерфейсом через Java код. Так что для нашего же удобства поменяем названия этих ID на что-нибудь более запоминаемое.

  • Бросив взгляд на то, что у нас должно получиться в итоге заметим, что TextView, который находится слева (его id на данный момент textView) должен выводить на экран число. Поменяем его ID на «textPartA». Обратите внимание на именование этой переменной, а точнее на маленькую «в начале, большую « в середине и большую « в конце. В принципе вы можете использовать любую комбинацию символов для имени любых переменных, но мы будем придерживаться «международного соглашения» об именовании переменных(«верблюжийРегистр»).
  • Теперь выберите textView2 и поменяйте его на «textOperator».
  • Выберите элемент с id textView3 и поменяйте его на «textPartB».
  • Теперь добавьте еще один TextView элемент на нашу форму, примерно по середине экрана. Этот элемент будет выводить на экран знак равенства «=» и по сути не выполняет никакой роли, кроме отображения, в связи с чем мы не будем с ним взаимодействовать в нашем коде и не будем менять его id.
  • Но это должен быть знак равенства, так что давайте зайдём в его свойства, кликнув по нему и в поле «text» введите знак «=»:

text component

Менять в изначально добавленных TextView элементах их свойство «text» не имеет смысла, так как  мы это будем делать через Java код.

  • Теперь под знаком «=» добавьте в ряд три элемента Button;
  • Так же как и для элементов TextView поменяйте id элементов Button слева направо на эти имена: buttonChoice1, buttonChoice2, buttonChoice3;
  • Сохраните проект. Вид игрового экрана на данный момент должен выглядеть так:

user interface game activity

Выглядит грубовато, не правда ли? Требуется немного отрегулировать размеры элементов. Сделаем это изменив для каждого элемента его свойство «textSize»: тут потребуется включить ваши дизайнерские качества, попробуйте поиграйте с размером текста в этих элементах, а также в свойстве «text» можете заменить то, что там сейчас находиться на предполагаемый текст, например, так:

game activity android studio

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