0

ウィジェットに構成アクティビティがある場合、ホーム画面のウィジェットをタップしてアクティビティを起動するのに問題があります。

通常、ウィジェット プロバイダー クラスの onUpdate メソッドに Intent と PendingIntent があります。

基本的に、このコードをどこに置くかを知る必要があります

Intent intent = new Intent(context, ClassToLaunch.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget, pendingIntent);  

私の configure アクティビティとウィジェット プロバイダーのコードを確認する必要がある場合はお知らせください。

乾杯

4

1 に答える 1

0

ここですでに見たように、configure アクティビティがあるとき、つまりウィジェットが最初に配置されたときに onUpdate は呼び出されません。

これがどのように機能するかです: ユーザーがウィジェットを選択するとリストが表示され、希望する場所にウィジェットを配置すると、アクティビティが自動的に前面に表示されます。その後、ユーザーは必要なものを構成できます。したがって、現時点では onUpdate は呼び出されません。ただし、後でユーザーがウィジェットをクリックすると、onUpdate が呼び出され、クリックを処理してアクティビティをオンにすることができます。そのようなウィジェットを変更するためにconfigureアクティビティを呼び出すことができるかどうかはわかりません。変更を機能させるには、おそらくコードを追加する必要があります。

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        Intent intent = new Intent(context, ClassToLaunch.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
        views.setOnClickPendingIntent(R.id.widget, pendingIntent);  

        // Push update for this widget to the home screen
        ComponentName thisWidget = new ComponentName(context, WidgetProvider.class);
        AppWidgetManager manager = AppWidgetManager.getInstance(context);
        manager.updateAppWidget(thisWidget, views);


}
于 2013-07-04T15:39:54.077 に答える