leshka
leshka

Reputation: 1794

Android: View by id? (from Widget Provider)

I know only one way to get a view by id:

getViewById(R.drawable.imageButton)

But how am I supposed to get this imageButton if i don't have an activity (developing a widget application)

I am able to get a context. I suppose it is enough to get the view - context contains only one widget isn't it? And if not - then how to get each widget views ?

Upvotes: 2

Views: 8983

Answers (3)

Sarpe
Sarpe

Reputation: 5806

Inside onReceive

AppWidgetManager mgr = AppWidgetManager.getInstance(context);

int[] appWidgetIds = mgr.getAppWidgetIds(new ComponentName(context, YourWidgetProvider.class));

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

rv.setImageViewResource(R.id.yourImageView, R.drawable.yourBitmap);

mgr.updateAppWidget(appWidgetIds, rv);

Upvotes: 3

Basavraj
Basavraj

Reputation: 64

There is no way you can get handle of ImageView. But you can use setImageViewBitmap or setImageViewResource or setImageViewUri from RemoteView class to set the bitmap of ImageView. http://developer.android.com/reference/android/widget/RemoteViews.html

Upvotes: 1

DonGru
DonGru

Reputation: 13710

For Widgets you have to work with RemoteViews, for example

RemoteViews updateViews = new RemoteViews(this.getPackageName(), R.layout.widget);

Here you can find a tutorial of how to use them

Upvotes: 6

Related Questions