0

レイアウトに 2 つのボタンがあるウィジェットがあります。私のコードは次のとおりです。

public void onReceive(Context context, Intent i) {

    AppWidgetManager mgr = AppWidgetManager.getInstance(context);

    Intent intent = new Intent(context, Activity1.class);
    PendingIntent pendingLayout = PendingIntent.getActivity(context, 0, intent, 0);


    Intent searchIntent = new Intent(context, Activity2.class);
    PendingIntent searchPendingLayout = PendingIntent.getActivity(context, 0, searchIntent, 0);

    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.searchwidget);

    views.setOnClickPendingIntent(R.id.widgetbutton, pendingLayout);
    views.setOnClickPendingIntent(R.id.widgetsearch, searchPendingLayout);

    ComponentName comp = new ComponentName(context,
            RecentTaskWidget.class.getName());

    mgr.updateAppWidget(comp, views);
}

widgetbutton と widgetsearch は、レイアウト内の 2 つのビューです。remoteviews オブジェクトから対応するビューを取得し、保留中のレイアウトをそれぞれに追加しています。しかし、活動は始まらない。コードに何か問題がありますか?

どうも!

4

1 に答える 1

0

onUpdate()あなたのメソッドをオーバーライドAppWidgetProviderし、このコードを本体に追加します。

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    AppWidgetManager mgr = AppWidgetManager.getInstance(context);
    Intent intent = new Intent(context, Activity1.class);
    PendingIntent pendingLayout = PendingIntent.getActivity(context, 0, intent, 0);
    Intent searchIntent = new Intent(context, Activity2.class);
    PendingIntent searchPendingLayout = PendingIntent.getActivity(context, 0, searchIntent, 0);
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.searchwidget);
    views.setOnClickPendingIntent(R.id.widgetbutton, pendingLayout);
    views.setOnClickPendingIntent(R.id.widgetsearch, searchPendingLayout);
    ...
    appWidgetManager.updateAppWidget(appWidgetIds, views);
}       

詳しくはこちらのページをご覧ください。

于 2012-07-27T13:44:18.030 に答える