1

AppWidgetProvider の onReceive メソッドでホーム画面ウィジェットのビューを更新するにはどうすればよいですか?

ホーム画面ウィジェットの TextView を更新しようとしていますが、onReceive メソッドで AppWidgetProvider の TextView にアクセスできないようです。

これが私のonReceiveのサンプルコードです

public void onReceive(Context context,Intent intent) {
    final String action = intent.getAction();
    if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
        final int appWidgetId = intent.getExtras().getInt(
        AppWidgetManager.EXTRA_APPWIDGET_ID,
        AppWidgetManager.INVALID_APPWIDGET_ID);
        if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
            this.onDeleted(context, new int[] { appWidgetId });
        }
    } else {
        if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
            String msg = "null";
            try {
                msg = intent.getStringExtra("msg");
            } catch (NullPointerException e) {

            }


            Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
            // code for gathering the text to update the TextView


            }

    }
        super.onReceive(context, intent);
}
4

1 に答える 1

2

TextView を更新することはできません。完全な新しいウィジェット レイアウト (RemoteViews) を作成して、ホーム画面に公開することしかできません。

于 2010-06-11T13:17:27.007 に答える