This page is hosted for free by cba.pl, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 5.83 PLN.
Do you want to support owner of this site? Click here and donate to his account some amount, he will be able to use it to pay for any of our services, including removing this ad.
Strony WWWSerwery VPSDomenyHostingDarmowy Hosting CBA.pl

Sayard Blog

Programowanie i takie takie

The Habit Game #9 – Widżety

Dzisiaj prawie każda aplikacja ma widżety które możemy umieszczać na ekranie głównym. Są one więc bardzo istotnym elementem, który powinniśmy umieć implementować. Pokażę więc jak to zrobić

Zaczniemy od rzeczy najprostszej czyli wyglądu widżetu.

Warto pamiętać że widżety są oparte na RemoteViews, które nie obsługują wszystkich layout’ów(nie zadziała np. RecyclerView, ale zadziała za to LinearLayout). Pełna lista wspieranych elementów dostępna jest tutaj.

Następnie tworzymy klasę rozszerzająca AppWidgetProvider. Jest to “głowa” naszego widżetu, tutaj możemy kodować zachowania związane z aktualizowaniem, usuwaniem itp. W tym prostym przykładzie nadpiszemy tylko onUpdate().

Wewnątrz tej metody tworzymy pętlę, która sprawi że po naciśnięciu przycisku zaktualizują się wszystkie widżety utworzone przez użytkownika. Wewnątrz pętli poza wygenerowaniem tekstu który utworzymy wewnątrz widżetu, tworzymy obiekt RemoteViews, który będzie zarządzał treścią widżetu. Tak więc wywołujemy na nim dwie metody setTextViewText()setOnClickPendingIntent(). Na końcu wywołujemy jeszcze metodę updateAppWidget na obiekcie appWidgetManager, wprowadzamy tym sposobem zmiany wywołane za pomocą RemoteViews.

Ostatnim krokiem jest zadeklarowanie naszego widżetu w pliku AndroidManifest.xml.

 

Podziel się z innymi!Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter

2 Comments

  1. Dzięki za kod! Coś czuję, że na pewno odwiedzę jeszcze posta, gdy będę potrzebował zaimplementować podobny widget ;p

Dodaj komentarz

Your email address will not be published.

*

© 2019 Sayard Blog

Theme by Anders NorenUp ↑