Знайомство з android

Отже, продовжимо. У цій частині ми додамо в проект ще одну форму і будемо відкривати її після натискання кнопки Run. Також зробимо так, щоб параметри, які були введені в першій формі, передавалися в другу (вони там ще знадобляться). Однак, нічого страшного ми поки з ними робити не будемо, а просто напишемо "Введено такі-то числа".

Обробка натискання кнопки

Напишемо в StartScreen.java наступне (рядки, які ми додаємо, виділені іншим кольором):

Тут виділені додані рядки. Отже, ми зробили форму слухачем події натискання на кнопку (імплементувати OnClickListener), і підписалися на цю подію для кнопки mButton (за допомогою setOnClickListener). Для того, щоб перевірити, що все правильно, в методі, який обробляє подія, змінюємо заголовок кнопки. Запускаємо - працює.

Перехід на іншу форму

Отже, додаємо ще одну форму. Для цього треба створити два файли - розмітки форми (run.xml) і класу форми (RunScreen.java).

Розмітку зробимо найпростішу:

У класі додамо onCreate, в якому зв'яжемо форму з цієї розміткою:

Крім того, потрібно згадати про нову форму в AndroidManifest.xml. Для цього в розділ application додаємо наступне:

До речі, в нових версіях ADT можна додавати активності не руками в XML, а за допомогою якогось ніякого графічного інтерфейсу у вкладці Application -> Application Nodes.

Перехід на іншу активність

Нам хочеться, щоб це вікно з'являлося після натискання кнопки "Run". Пишемо в обробнику цієї кнопки наступне:

Запускаємо - працює. Тепер пояснимо, що зробили.

Intent - це опис деякої дії, що має зробити додаток. Цією дією може бути перехід до іншого вікна, вчинення вихідного дзвінка, відкрити список контактів і т.д. У Intent-а є два основних атрибуту:

  • action - функція, яку треба виконати. Здається в вигляді константи: ACTION_VIEW, ACTION_DIAL і т.д.
  • data - аргумент цієї функції, записаний у вигляді URI

Наприклад, поєднання VIEW_ACTION content: // contacts / people / 1 відповідає висновку інформації про контакт з ідентифікатором 1, а ACTION_DIAL tel: 123 - висновку вікна виклику з набраними цифрами 123.

Однак, нам всього цього не потрібно, а потрібно, щоб оброблювачем Intent-а була сама форма RunScreen. Для цього ми використовуємо функцію setClass (або є ще така setClassName).

Виклик функції startActivity (intent) запускає операцію intent (тобто відкриває вікно), finish () завершує поточну задачу (тобто закриває вікно StartScreen).

Передача даних між вікнами

Отже, вікно RunScreen з'являється, але на ньому нічого немає. Розглянемо, яким чином можна передати параметри, введені в StartScreen, в вікно RunScreen.

У класу Intent, крім основних атрибутів, є ще й другорядні. Зокрема, є такий атрибут extras, де у вигляді хешу (Bundle) зберігаються будь-які додаткові параметри. Їм-то ми і скористаємося. Отже, додамо в клас RunScreen.java наступні константи (ключі хешу):

Тепер модифікуємо обробник onClick в класі StartScreen.java, щоб він виглядав так:

Отже, ми передали в наш Intent додаткові параметри. Тепер ми отримаємо їх в RunScreen в методі onCreate:

Тепер, після натискання на кнопку Run ми бачимо наступне:

висновок

Отже, ми додали в наш додаток ще одну форму, створили перехід на неї і передали параметри з першої форми.

Інші статті циклу

  • Знайомство з Android. Частина 1: Просте додаток для Android
  • Знайомство з Android. Частина 2: Переходи між формами
  • Знайомство з Android. Частина 3: Використання діалогів
  • Знайомство з Android. Частина 4: Використання GridView

Схожі статті