już byłam w ogródku, już witałam się z gąską

Zanim rozpoczęłam ten projekt, zrobiłam mały wywiad u przyjaciół, jakie proste aplikacje chcieliby mieć na swoim telefonie. Mój Przyjaciel Jacek rzucił pomysł na stroboskop z latarki w telefonie z suwakiem, ile minut ma blyskac i z jaka czestotliwoascia. Chyba nie wyglądałam na przekonaną, bo dodał  losowy fakt z wikipedii, z dzisiejszą datą x lat temu, oczywiście w formie widżeta. Tę drugą aplikację wzięłam od razu na klatę. Wszystkie te poprzednie, drobne aplikacje zbliżały mnie do aplikacji dla Jacka. W tym tygodniu czułam się naprawdę blisko, bo przecież.

  1. Umiem już pobrać losowy fakt z danego dnia z Wikipedii.
  2. Znam już jakieś podstawy Androida: intencje, aktywności, elementy interfejsu i takie takie
  3.  w szczególności wiem, co to jest widżet

Ponadto w różnych (przynajmniej dwóch) tutorialach jest nawet przykład kodu widżeta, który wyświetla losową liczbę i uaktualnia się co zadany odstęp czasu lub po wciśnięciu przycisku. Naprawdę byłam przekonana, że w tym tygodniu będę miała analogiczny widżet z ciekawostkami z Wikipedii. Tylko u mnie kod z losową liczbą nie działał (btw czy są też takie koszulki?) przez dwa długie wieczory. Nie działał, jak zaczynałam pisać tego posta, a nawet nie działał, jak pisałam przedostatnie zdanie. Przycisk Refresh nie robił nic. No może nie do końca nic – im częściej go wciskałam, tym mocniej zaciskałam zęby i tym mocniej chciałam rzucić telefonem o ścianę. Pisanie tego bloga wymaga od mnie trochę szczerości w przyznawaniu się do rzeczy, do których nie lubię się przyznawać. Tak jest i teraz kiedy piszę: nie mam pojęcia, co takiego sprawiło, że zaczął działać. Naprawdę jestem przekonona, że kod metody onUpdate(), która odświeża widżeta, wyglądał dokładnie tak jak poniżej, przez większość czasu, kiedy go z negatywnym skutkiem testowałam. Wygląda tak również teraz.  A ponieważ:

  1. teraz działa (patrz zdjęcia i zaufanie do mnie)
  2. emocje ze mnie nie zeszły na tyle, żeby odkomentować kod z wersją z Wikipedią i sprawdzić, co się stanie
  3. ten weekend chce spędzić na Kurpiach z dala od komputera

w tym tygodniu poprzestanę na tej aplikacji. Za to następnym poście napiszę, co  dokładnie w poniższej metodzie się dzieje

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        ComponentName thisWidget = new ComponentName(context, MainWidget.class);
        int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
        for (int widgetId : allWidgetIds) {
            int number = (new Random().nextInt(100));
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
                    R.layout.main_widget);
            remoteViews.setTextViewText(R.id.update, String.valueOf(number));
            Log.w("WidgetExample", String.valueOf(number));
            Intent intent = new Intent(context, MainWidget.class);
            intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
            intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            remoteViews.setOnClickPendingIntent(R.id.actionButton, pendingIntent);
            appWidgetManager.updateAppWidget(widgetId, remoteViews);
        }
    }
Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s