2012-12-27 11 views
17

Chciałbym aktualizować mój widget za każdym razem, gdy zostanie on zmieniony. Pomyślałem, że odbywa się to w:Jak używać onAppWidgetOptionsChanged() w widgecie?

onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions)

Ale nie mogę dowiedzieć się, jak zaktualizować widget w nim. Próbowałem przerysować widżet, wywołując wszystko, co wstawiam, onUpdate(), ale to nie działa. Jak mogę skorzystać z pakietu?

Odpowiedz

32

Chciałbym aktualizować mój widget za każdym razem, gdy zostanie on zmieniony.

Fajnie!

zorientowali się, że odbywa się to w onAppWidgetOptionsChanged()

Dokładniej, jeśli masz odpowiednie działania w <intent-filter> na Androida 4.1 lub nowszym urządzeń, dowiesz się o zmianę rozmiaru zdarzenia poprzez onAppWidgetOptionsChanged().

Ale nie mogę dowiedzieć się, jak zaktualizować widżet w nim.

Uaktualniasz go w taki sam sposób, jak aktualizujesz w onUpdate(). Zadzwoń pod numer updateAppWidget() na AppWidgetManager z odpowiednim RemoteViews.

Próbowałem przerysować widget, wywołując wszystko, co wstawiłem onUpdate(), ale to nie działa.

"To nie działa" nie jest szczególnie skutecznym opisem twoich symptomów.

Jak mogę skorzystać z pakietu?

Dla Bundle nazwie newOptions można znaleźć swój nowy zakres wielkości poprzez:

newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH) 
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH) 
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT) 
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT) 

Na przykład this sample project zawiera AppWidgetProvider że po prostu wylewa te wartości do łańcucha i wykorzystuje to do aktualizacji TextView. Wynik wygląda następująco:

Resize Widget, During Resize Operation

+0

Dziękuję bardzo! : D –

+0

Po prostu FYI, ten przykład nie działa na mojej wersji do budowania z systemem Galaxy S3 JZ054K.I9300XXXELL4. Działa jednak pięknie na moim Nexusie 4. Dzięki Mark! – Justin

+0

@Justin: co oznacza "nie działa"? – CommonsWare

Powiązane problemy