1

これまでのところ、私はコーディングしました:

public class WidgetActivity extends AppWidgetProvider
{    
    public void onReceive(Context context, Intent intent)
    {


        String action = intent.getAction();
        if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action))
        {

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

            Intent settingsIntent = new Intent(context, Info.class);
            PendingIntent clickPendIntent = PendingIntent.getActivity
                    (context, 0, settingsIntent, PendingIntent.FLAG_UPDATE_CURRENT);
            views.setOnClickPendingIntent(R.id.Widget, clickPendIntent);





            AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views);


        }
    }
}

うまくいきませんでしたが、画面上でウィジェットをクリックしても何も起動しませんでした。何か不足していますか?

4

1 に答える 1

1

PendingIntentが設定されていることを確認するコードをonUpdate()代わりにメソッドに入れます。これにより、ウィジェットがホーム画面に配置されるとすぐにPendingIntent設定されます。

そう:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgets) {
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_activity);
    Intent intent = new Intent(context, Info.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
    remoteViews.setOnClickPendingIntent(R.id.Widget, pendingIntent);

また:

また、最初にウィジェットをホーム画面に追加するときに情報Activityを自動的にポップアップ表示する場合は、この便利な情報をお読みください。

于 2012-10-18T00:26:00.733 に答える