Здавалка
Главная | Обратная связь

Оновлення рівня контроллера



 

У попередній главі в єдиному контроллері GeoQuiz — QuizActivity — не відбувалося майже нічого. Він відображав макет, визначений у файлі activity _ quiz. xml, призначав слухачів для двох кнопок і організовував видачу повідомлень.

 

Тепер, коли у нас з'явилися додаткові питання, класу QuizActivity доведеться докласти додаткові зусилля для зв'язування рівнів моделі і представлення GeoQuiz.

Відкрийте файл QuizActivity.java. Додайте змінні для TextView і нової кнопки Button. Також створіть масив об'єктів TrueFalse і змінну для індексу масиву.

 

Лістинг 2.6. Додавання змінних і масиву TrueFalse

 

Програма кілька разів викликає конструктор TrueFalse і створює масив об'єктів TrueFalse.

 

(У складнішому проекті цей масив створювався б і зберігався у іншому місці. Пізніше ми розглянемо правильніші варіанти зберігання даних моделі. А доки для простоти масив створюватиметься в контроллері.)

 

Ми збираємося використати mQuestionBank, mCurrentIndex і методи доступу TrueFalse для виведення на екран серії питань.


Розпочнемо з отримання посилання на TextView і завдання тексту віджета питання з поточним індексом.

 

Лістинг 2.7. Підключення віджета TextView(QuizActivity.java)

 

Збережіть файли і перевірте можливі помилки. Запустіть програму GeoQuiz. Перше питання з масиву повинне відображатися у віджете TextView.

Тепер розберемося з кнопкою Next. Отримайте посилання на кнопку, призначте їй слухача View.OnClickListener. Цей слухач збільшуватиме індекс і оновлюватиме текст TextView.

 

Листинг 2.8.Подключение новой кнопки(QuizActivity.java)

 


 


Запустіть GeoQuiz і протестуйте нову кнопку Next.

 

Итак, з питаннями ми розібралися — пора звернутися до відповідей. І знову ми реалізуємо закритий метод для інкапсуляції коду замість того, щоб вставляти однаковий код в двох місцях.

 

Сигнатура методу, який буде доданий в QuizActivity, виглядає так: private void checkAnswer(boolean userPressedTrue)

 

Метод отримує логічну змінну, яка вказує, яку кнопку натиснув користувач: True або False. Відповідь користувача перевіряється по відповіді поточного об'єкту TrueFalse. Нарешті, після визначення правильності відповіді метод створює повідомлення для виведення відповідного повідомлення.


Включіть у файл QuizActivity.java реалізацію checkAnswer(boolean), приведену в лістингу 2.10.

Лістинг 2.10. Додавання методу checkAnswer(boolean) (QuizActivity.java)

...

 

public class QuizActivity extends Activity {

 

 


 

Програма GeoQuiz знову готова до роботи. Давайте запустимо її на реальному пристрої.

 

Запуск на пристрої

 

У цьому розділі ми займемося налаштуванням системи, пристрої і додатки для виконання GeoQuiz на фізичному пристрої.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.