1

(お願い!!誰か助けてくれませんか)' :) やあ

私はデジタル時計ウィジェットを開発しています:

Herr は私のコードです:

最初に Enabled と Receive overrides で:

public void onEnabled(Context context) {
    super.onEnabled(context);
    PendingIntent anIntent=PendingIntent.getBroadcast(context, 0, new Intent("upp"),PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmMgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    alarmMgr.setRepeating(AlarmManager.RTC,System.currentTimeMillis(),1000, anIntent);
} 
@Override
public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals("upp")){
        ComponentName componentName =new ComponentName(context,getClass().getName());
        AppWidgetManager appWidgetManager=AppWidgetManager.getInstance(context);
        int[] appWidgetIds=appWidgetManager.getAppWidgetIds(componentName);
        onUpdate(context,appWidgetManager,appWidgetIds);
    }
}

そして更新時:

Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {

    super.onUpdate(context, appWidgetManager, appWidgetIds);

次に、onUpdate の内部で、最初に Time メソッドを使用して時間と分を文字列として取得しました。

    onEnabled(context);
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();

int hour = today.hour;
String hh = Integer.toString(hour);

int minute = today.minute;
String mm = ":" + Integer.toString(minute);

そして、ビットマップを使用して2つの画像ビュー内にこれらの2つの文字列を表示しました:

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

        views.setImageViewBitmap(R.id.imageView1, getFontBitmap(context, hh, Color.WHITE, 70));

        views.setImageViewBitmap(R.id.imageView2, getFontBitmap1(context, mm, Color.WHITE, 70));

        ComponentName componentName =new ComponentName(context,getClass().getName());
        int[] appWidgetId=appWidgetManager.getAppWidgetIds(componentName);
        appWidgetManager.updateAppWidget(appWidgetId, views);
} 

ここでの私の問題は、このウィジェットをホーム画面に追加するとレイアウトが表示されないということです。つまり、時計がなくなったことを意味しますが、受信オーバーライドを削除すると、ウィジェットが表示されますが、更新されませんか? 前もって感謝します

4

0 に答える 0