I don't see anything in the source for RemoteViews that would do that,
maybe I'm not looking well enough.
My suggestion would be -- for debugging purposes only -- to simulate a
RemoteViews update cycle within your own application, checking the
result, and stepping through the code if necessary.
By this I mean: writing your "views" object into a Parcelable, cloning a
new instance from that Parcelable, inflating your widget's root layout,
and applying the cloned RemoteViews.
Oh, and one more thing: your widget updates are all executed from one
place in the code, updating everything at once -- the views, the pending
intents if any, the background images -- right?
-- Kostya
27.01.2012 8:37, TreKing ?????:
Folks,
I'm getting my feet wet on app widgets so I'm probably missing
something obvious, but I've hit a snag that's got me stumped.
Basically, I cannot seem to dynamically add more than one instance of
the same layout to a LinearLayout living in a RemoteViews object. Only
the /first/ item gets added.
Has anyone seen anything like that?
Here's more detail to clarify: I've got something like this in an
IntentService that creates a list of objects to display.
// Create remote view for main widget layout
RemoteViews views = new RemoteViews(getPackageName(),
R.layout.widget_layout);
// "list" is some list of objects populated in the IntentService
for (int i = 0; i < list.size(); i++)
{
// Create remote view for the object to add to linear layout
RemoteViews v = new RemoteViews(getPackageName(),
R.layout.linear_layout_entry);
// ... Set Text on text views in "v" for the current object
// Add new view to the linear layout in the widget
views.addView(R.id.ll_widget, v);
}
AppWidgetManager man = AppWidgetManager.getInstance(this);
man.updateAppWidget(widgetID, views);
Now, this works as expected for the first item in the list. However,
all others seem to be getting ignored - my widget only shows the first
entry in the list even though there is plenty of room.
I've stepped through the loop and it's definitely getting populated
and I can see that the main "views" RemoteViews object has multiple
"nested views" that should be my dynamic views, but they just don't
appear.
If I manually add instances of the layout (the one I'm inflating) to
the linear layout via the designer, they show up.
If I dynamically add instances of /different/ layouts to the
LinearLayout one after the other, they show up.
If I dynamically add instances of /the same layout/ to the
LinearLayout, then only the first shows up.
So apparently I can only add one instance of a given layout to a
LinearLayout for a widget? That does not seem right at all ...
I've gone though the docs and samples and searched this list,
StackOverflow, and b.android.com <http://b.android.com> and not found
anything about this.
There are no warnings or errors in the LogCat. I've tried on my 2.3.3
device and various emulators and no dice.
I can hack this up and manually add a bunch of the layouts and not use
the ones I don't need, but I really feel like this should work.
Anyone else seen this while working on widgets and have a clue what
I'm doing wrong?
Thanks.
-------------------------------------------------------------------------------------------------
TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago
transit tracking app for Android-powered devices
--
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
--
Kostya Vasilyev
--
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