Okay, as I could not find a way to fix that smoothly, I just used a flag
ignoreNextOnItemSelected like described hereafter. Seems to me a dirty hack
:(
// called from another activity context
updateSpinnerSelection(int newposition) {
mPosition = newposition; // store it
mSpinner.setSelection(newposition);
ignoreNextOnItemSelected= true;
}
and
public void onItemSelected(AdapterView<?> arg0, View arg1, int position,
long rowid) {
if (ignoreNextOnItemSelected) {
// position might be outdate ?!?! just reapply mPosition
ignoreNextOnItemSelected = false;
// required
mSpinner.setSelection(mPosition);
} else {
mPosition = position;
... // do usual stuff
}
}
2011/2/25 Thierry Legras <[email protected]>
> Hi,
>
> I have a strange behavior in a very specific case and wonder if the issue
> comes from my code or not.
>
> I have a TabActivity A with 2 tabs:
> - Tab 1 content is created as a view with a spinner in it
> - Tab 2 content is an activity B.
>
> I want at some point when Tab2 is selected to switch to Tab 1 and update
> spinner selection in it.
>
> Case 1)
> Tab 2 is selected, from Activity B context:
>
> activityA.updateSpinnerSelection(newposition);
> activityA.getTabHost().setCurrentTabByTag(tab1tag);
>
> later AdapterView.OnItemSelectedListener.onItemSelected is called with my
> newposition
>
> => so this *usually *works fine:
>
> Case 2)
> Tab 2 is selected, from Activity B context, but before doing the same
> things, if the users for some reason *first open a new acticity C on top
> of B (like preference screen) and close this activity C*, (so A and B are
> paused then resumed), then if I later try again the same things:
>
> activityA.updateSpinnerSelection(newposition);
> activityA.getTabHost().setCurrentTabByTag(tab1tag);
>
> so far so goog, but later
> AdapterView.OnItemSelectedListener.onItemSelected is called not with
> newposition as argument *but with the older position value*.
>
>
> I hope the description is clear.
>
> Did I missed something? or could this behavior dues to some bug in Android?
>
>
> Thanks for any help,
> --
> Thierry.
>
--
Thierry.
--
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