I am trying to develop and AnalogClock widget on the home screen that changes depending on the time of day. I am finding problems getting to the right code to make it happen, and will hope to seek you help and advise here.
1) Getting the dial resource in AnalogClock to change in code
I have been trying to get the AnalogClock in my widget XML file to change based on the system time. However, I realized that AppWidgetProvider do not support findViewbyID and i was trying to figure out how to make use of remoteviews to change the AnalogClock image. Any experts can enlighten me on this issue? Now I am implementing another method, but it is very ugly.
1) Getting onUpdate to work in appwidgetprovider
I am trying to get the onUpdate to work and change the views on set time, say at the start of every passing hour, at time zone change, at time change etc. Anyone know how i can get started to make onUpdate work for that purpose?
My code is below. Thanks guys. hope to learn from all of you.
Cheers
Zee
Using java Syntax Highlighting
- public class Widget extends AppWidgetProvider
- {
- public void onReceive(Context context, Intent intent)
- {
- String action = intent.getAction();
- if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action))
- {
- setViews();
- 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);
- }
- }
- public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
- {
- setViews();
- }
- private void setViews(){
- GregorianCalendar Calendar = new GregorianCalendar();
- int hour;
- hour = Calendar.get(Calendar.HOUR_OF_DAY);
- if (hour > 12){
- hour -= 12;
- }
- if (hour == 0){
- hour = 12;
- }
- switch (hour) {
- case 1:
- views = new RemoteViews("com.ClockWidget", R.layout.widget);
- break;
- case 2:
- views = new RemoteViews("com.ClockWidget", R.layout.widget2);
- break;
- case 3:
- views = new RemoteViews("com.ClockWidget", R.layout.widget3);
- break;
- case 4:
- views = new RemoteViews("com.ClockWidget", R.layout.widget4);
- break;
- case 5:
- views = new RemoteViews("com.ClockWidget", R.layout.widget5);
- break;
- case 6:
- views = new RemoteViews("com.ClockWidget", R.layout.widget6);
- break;
- case 7:
- views = new RemoteViews("com.ClockWidget", R.layout.widget7);
- break;
- case 8:
- views = new RemoteViews("com.ClockWidget", R.layout.widget8);
- break;
- case 9:
- views = new RemoteViews("com.ClockWidget", R.layout.widget9);
- break;
- case 10:
- views = new RemoteViews("com.ClockWidget", R.layout.widget10);
- break;
- case 11:
- views = new RemoteViews("com.ClockWidget", R.layout.widget11);
- break;
- case 12:
- views = new RemoteViews("com.ClockWidget", R.layout.widget12);
- break;
- default:
- break;
- }
- }
- private RemoteViews views;
- private AnalogClock clock;
Parsed in 0.041 seconds, using GeSHi 1.0.8.4

