Створення віджета для android, програмування під android
Віджети - це графічні компоненти, які розміщуються на «домашній екран» і, як правило, служать як ярликів для швидкого запуску додатків, або ж для надання тієї чи іншої інформації, яка оновлюється з певним інтервалом. Чи не кожен додаток включає можливість розмістити віджет, однак, розробнику під Андроїд це потрібно вміти робити. У даній статті ми якраз розглянемо, як можна створити найпростіший віджет.
Отже, створимо віджет, який буде виводити поточну дату і час.
Створимо необхідний код для нашого віджета.
1. Створимо layout для віджета, тобто його зовнішній вигляд. Код res / layout / main.xml:
Як бачимо, наш віджет являє собою всього лише одне текстове поле, яке ми будемо наповнювати інформацією про дату і час. За замовчуванням, як текстового значення виводимо слово «Test».
2. Створимо конфігураційний файл, що описує наш віджет - res / xml / widget_provider.xml:
Всі потрібні налаштування ми поміщаємо всередину тега appwidget-provider. Ми задаємо його висоту (74dp мінус 2dp на межі), ширину (74dp + 74dp мінус 2dp на межі), частоту оновлення updatePeriodMillis в мілісекундах і файл компонування initialLayout, який ми створили на попередньому кроці.
Варто відзначити, що можна задавати будь-яку кількість мілісекунд, однак, в реальності віджет НЕ буде оновлюватися частіше, ніж раз в 30 хвилин. Таке обмеження дозволяє економити заряд батареї і інші ресурси пристрою. Таким чином, час, показане нашим виджетом буде оновлюватися раз в півгодини. Це не дуже практично, але наша мета - навчитися створювати віджет і попрактикуватися.
3. Створюємо java-код, який буде оновлювати наш віджет - src / ru / androiddocs / widget / MyWidget.java:
Усередині даного класу - два методу: onUpdate () і onReceive (). Перший метод спрацьовує завжди, коли «настає момент» для оновлення віджета (час ми задали в мілісекундах в конфігураційному xml-файлі). Другий метод - з настанням певної події-intent (Intent broadcast). На даний момент ми не поміщаємо будь-яку серйозну логіку в другій метод, але використовуємо логирование, щоб побачити, що при виклику onUpdate слідом також викликається і метод onReceive ().
Тут ми могли б не включати метод onReceive () в код, але залишимо його для прикладу. Надалі якщо ми захочемо оновити віджет з активують не чекаючи настання потрібного часу, то як раз цей метод в нагоді дуже до речі.
Щоб отримати доступ до TextView віджета ми повинні використовувати RemoteViews. тому звернутися до layout безпосередньо не вийде. Далі ми «СЕТТІ» текст (час в строковому форматі):