2012-12-27 10 views
17

Vorrei aggiornare il mio widget ogni volta che viene ridimensionato. Ho capito che questo è fatto in:Come utilizzare onAppWidgetOptionsChanged() in un widget?

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

Ma non riesco a trovare il modo di aggiornare il widget di in esso. Ho provato a ridisegnare il widget chiamando tutto ciò che ho inserito in onUpdate(), ma non funziona. Come posso utilizzare il pacchetto?

risposta

32

Vorrei aggiornare il mio widget ogni volta che viene ridimensionato.

Cool!

ho capito che questo è fatto in onAppWidgetOptionsChanged()

Più precisamente, se avete le azioni giuste nel vostro <intent-filter>, su Android 4.1 e versioni successive dispositivi, si scoprire ridimensionare gli eventi tramite onAppWidgetOptionsChanged().

Ma non riesco a scoprire come aggiornare il widget in esso.

Si aggiorna nello stesso modo in cui lo si aggiorna in onUpdate(). Chiama lo updateAppWidget() allo AppWidgetManager con uno RemoteViews appropriato.

Ho provato a ridisegnare il widget richiamando tutto ciò che ho inserito in suUpdate(), ma non funziona.

"non funziona" non è una descrizione particolarmente efficace dei sintomi.

Come posso utilizzare il pacchetto?

Per un Bundle nome newOptions, si può scoprire la nuova gamma di dimensioni via:

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) 

Per esempio, this sample project contiene un AppWidgetProvider che si riversa semplicemente quei valori in una stringa e lo utilizza per aggiornare un TextView. Il risultato è il seguente:

Resize Widget, During Resize Operation

+0

Grazie mille! : D –

+0

Solo per FYI, questo esempio non funziona sul mio Galaxy S3 con il numero di build JZ054K.I9300XXXELL4. Tuttavia, funziona splendidamente sul mio Nexus 4. Grazie Mark! – Justin

+0

@Justin: cosa significa "non funziona"? – CommonsWare

Problemi correlati