Tjenare alla glada (och ni andra surpuppor
)!
Jag behöver hjälp med en widget jag håller på med. Det ska föreställa en digitalklocka, och jag har kommit så långt att jag har fastnat på själva uppdateringen av den.
Så här ser Widget-klassen ut:
Kod:
public class Widget extends AppWidgetProvider{
Images im = new Images();
public void onReceive(Context context, Intent intent){
String action = intent.getAction();
if(AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)){
im.update();
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);
}
}
}
och Images klassen:
Kod:
public class Images{
Klockan kl = new Klockan();
Bitmap[] bMap = new Bitmap[11];
private Context ctx;
private ImageView[] image = new ImageView[5];
public Images(){}
public Images(Context ctx){
this.ctx = ctx;
// Initialisering av imageviews och bitmaps
}
}
public void update(){
for(int i=0; i < image.length;i++){
int n = Character.getNumericValue((kl.getSplitTimeChar()[i]));
if(n == -1)
image[i].setImageBitmap(bMap[10]);
else
image[i].setImageBitmap(bMap[n]);
}
}
}
Sedan tänkte jag passa på att fråga om det går att underlätta detta:
Kod:
image[0] = (ImageView) findViewById(R.id.slot1);
image[1] = (ImageView) findViewById(R.id.slot2);
Det går ju inte att bara göra en for-loop med "slot"+i då R.id.slot1 är en int, så hur kan jag gå till väga där?
Huvudfrågan är dock hur jag ska göra uppdateringen och (antagligen relaterat) en force close vid laddningen.
Jag har provat att ändra android:updatePeriodMillis men jag antar att det är något fel vid laddningen av bilderna som orsakar force close och som gör att det inte sker någon uppdatering.
Blev kanske virrigt men jag hoppas att meddelandet går fram.