17

サイズが変更されるたびにウィジェットを更新したいと思います。私はこれがで行われていることを理解しました:

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

しかし、その中のウィジェットを更新する方法を見つけることができません。入れたものをすべて呼び出してウィジェットを再描画しようとしましたonUpdate()が、機能しません。どうすればバンドルを利用できますか?

4

1 に答える 1

33

サイズが変更されるたびにウィジェットを更新したいと思います。

涼しい!

私はこれがで行われていることを理解しましたonAppWidgetOptionsChanged()

より正確には、<intent-filter>Android 4.1以降のデバイスで適切なアクションを実行している場合は、を使用してサイズ変更イベントについて確認できますonAppWidgetOptionsChanged()

しかし、その中のウィジェットを更新する方法を見つけることができません。

で更新するのと同じ方法で更新しonUpdate()ます。適切なでをupdateAppWidget()呼び出します。AppWidgetManagerRemoteViews

onUpdate()に入れたものをすべて呼び出してウィジェットを再描画しようとしましたが、機能しません。

「機能していない」というのは、症状を特に効果的に説明するものではありません。

どうすればバンドルを利用できますか?

Bundle名前付きの場合newOptions、次の方法で新しいサイズ範囲を見つけることができます。

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)

たとえば、このサンプルプロジェクトAppWidgetProviderには、これらの値を文字列に入力し、それを使用してを更新するが含まれていTextViewます。結果は次のようになります。

サイズ変更操作中のウィジェットのサイズ変更

于 2012-12-28T00:05:37.717 に答える