Hi
I'm writing Analog Clock widget and it doesn't want to change layout at
runtime. Problem is that clock actually changes layout but only ONCE. Every
next onReceive() method calling is effectless.
public class Widget 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);
Intent _intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent =
PendingIntent.getActivity(context, 0, _intent, 0);
views.setOnClickPendingIntent(R.id.Widget, pendingIntent);
Random r = new Random();
int i = r.nextInt( 2 );
if ( i > 0 )
{
Log.d( "Widget", "Blue" );
views.setImageViewResource( R.id.AnalogClock,
R.drawable.widgetdial_blue );
}
else
{
Log.d( "Widget", "Black" );
views.setImageViewResource( R.id.AnalogClock,
R.drawable.widgetdial );
}
AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS),
views);
}
}
}
Provider is simply notified by onItemClick action as debugger confirms:
public void onItemClick(AdapterView<?> parent, View view, int position,
long id)
{
Intent intent = new Intent(
AppWidgetManager.ACTION_APPWIDGET_UPDATE );
sendBroadcast( intent );
Toast.makeText(getApplicationContext(), ((TextView)
view).getText(), Toast.LENGTH_SHORT).show();
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en