0

学習目的でアナログ時計ウィジェットを作成していますが、設定レイアウトを作成して時計の文字盤の画像を変更する方法を知りたいです。ウィジェットは既に作成していますが、設定レイアウトを表示するための onclicklstener を取得できないようです。

これは私が持っているものです:

@Override
public void onDeleted(Context  context, int[] appWidgetIds) 
{super.onDeleted(context, appWidgetIds);
}

@Override
public void onDisabled(Context  context) {
        super.onDisabled(context);
        }

@Override
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);

        Intent AlarmClockIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.alarmclock", "com.android.alarmclock.AlarmClock"));
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, AlarmClockIntent, 0);
        views.setOnClickPendingIntent(R.id.Widget, pendingIntent);

        AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views);
    }
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
    int[] appWidgetIds) 
{
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.settings);
        Intent launchActivity = new Intent(context,Widget.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context,0, launchActivity, 0);
        updateViews.setOnClickPendingIntent(R.id.Widget, pendingIntent);
        ComponentName myComponentName = new ComponentName(context, Settings.class);
        AppWidgetManager manager = AppWidgetManager.getInstance(context);
        manager.updateAppWidget(myComponentName, updateViews);
}

}
4

1 に答える 1

0

この質問はここで再び尋ねられました。

将来の訪問者のために:

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-22T04:56:17.237 に答える