Познакомиться с основными элементами управления приложения и научиться их использовать согласно логике приложения.
- Создайте простое приложение-кликер. Главное и единственное окно приложения должно демонстрировать кнопку с надписью "Нажми меня" и надпись "Вы нажали кнопку 0 раз". При каждом нажатии на кнопку, надпись соответствующим образом изменяется.
Создадим новый проект так же, как на прошлой работе. Назовем его clicker.
Откроем XML-файл с активностью. Добавим текстовое поле:
<TextView
android:id="@+id/mainTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Кликов: 0">Под ним добавим кнопку:
<Button
android:id="@+id/main_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/click_me"/>Перейдем в файл с кодом активности. Для начала введем переменные для наших элементов управления:
TextView mainText;
Button mainBtn;Еще нам понадобится переменная, содержащая значение количества тапов по кнопке. Она может быть целого или длинного типа.
private long score = 0;Эти переменные будут являться членами класса.
Затем в методе при загрузке приложения найдем по идентификатору ссылки на соответствующие элементы управления:
mainText = (TextView) findViewById(R.id._mainTxt_);
mainBtn = (Button) findViewById(R.id._main_btn_);Теперь создадим обработчик события нажатия на кнопку. В этой работе мы попробуем создать новый класс для обработки события. Это более правильный подход, чтобы не загромождать главный класс активности всеми возможными событиями приложения. В Java можно создавать класс сразу при его объявлении по месту, объединив объявление класса с вызовом конструктора:
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
}
};Обратите внимание на точку с запятой в конце объявления класса - это все-таки оператор присваивания.
Таким образом, мы создали анонимный класс-потомок класса View.OnClickListener() с одним переопределенным методом - onClick() и сразу же создали экземпляр этого класса в переменную clickListener. Это полезно, если Вы планируете использовать определение класса только один раз.
Метод onClick() должен будет вызываться при нажатии на кнопку. В определении этого метода нам нужно произвести следующие действия:
Увеличиваем значение счетчика нажатий:
score ++;Составляем нужную строку:
String s = "Кликов: " + score;Выводим эту строку в текстовое поле:
mainText.setText(s.toCharArray(),0, s.length());Теперь нам осталось только назначить обработчик события нужному нам элементу управления:
mainBtn.setOnClickListener(clickListener);Запустим наше приложение. Мы должны увидеть работающую кнопку и счетчик нажатий.
При желании Вы можете изменить оформление или позиционирование этих элементов.
- Добавьте в приложение кнопку, которая наоборот, уменьшает счетчик нажатий.
- Добавьте кнопку, сбрасывающую счетчик.
- Модифицируйте надпись так, чтобы она гласила "Кнопка нажата N раз". Реализуйте правильное склонение слова "раз".
- Используйте вместо кнопки произвольную картинку.
- (*) Создайте приложение-калькулятор. Приложение должно предоставлять пользователю возможность вводить числа тапами по кнопкам и с клавиатуры.