I'm quoting an old message from last year because it's EXACTLY the
problem I'm having:
> Hi all,
> I have a spinner in a dialog. Calling spinner.setSelection(int)
> correctly sets the spinner just after opening the app. If I reopen the
> dialog after making another spinner.setSelection(int) call, the
> spinner shows the first item regardless of the selection being set,
> BUT...
>
> clicking on the spinner shows that the correct value is selected in
> the list of options (green dot next to the item). Weird huh? Sometimes
> when this happens, the spinner is cutting off parts of the text. Has
> anyone else seen this happen?
Since the last guy got no response, I'll give as much detail as I
can... this is driving me nuts.
I built a class to help me build a Spinner in a consistent manner to
display a list of categories. After the objects are initialized, my
Activity calls a method initCatSpinner which builds the ArrayAdapter
and finishes initializing my Spinner.
Called from onCreate and onActivityResult:
mCategorySpinner = mCatSpinHelper.initCatSpinner(mCategoryId,
catcursor);
public Spinner initCatSpinner(long initial_category, Cursor
all_categories) {
LinkedList<CategorySpinnerItem> categories = new
LinkedList<CategorySpinnerItem>();
// Code to build this linked list from all_Categories is here,
removed for brevity
// Code adds an "All" item to the top, builds a list of categories
using catcursor, then adds a "Edit Categories" option to the end of
the list
if(initial_category == ID_ALL) {
mLastCategoryPosition=0;
}
// Build the spinner adapter and set up the Spinner
ArrayAdapter<CategorySpinnerItem> spinadapter = new
ArrayAdapter<CategorySpinnerItem>(mCtx,
android.R.layout.simple_spinner_item,
android.R.id.text1,
categories);
spinadapter.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);
mCatSpinner.setAdapter(spinadapter);
mCatSpinner.setSelection(mLastCategoryPosition);
mCatSpinner.setPrompt(mCtx.getResources().getString
(R.string.choose_category));
return mCatSpinner;
}
This works fine on two different activities when they are launched.
One activity launches to show a list of all items in the category
chosen by this spinner. From there I can launch another activity in a
dialog to change the category of a selected item, and when I do this
and return to the original activity I get the above symptoms. I still
see a list of the items in the proper category, if I open the spinner
the category that was originally selected is still selected, but the
spinner item that's displayed on the widget itself is always the first
one in the list! It also happens if I switch to another Activity then
come back to this one.
I've checked with Log output and mLastCategoryPosition IS being set
correctly, so the setSelection call is passing the right data. I even
tried calling SystemClock.sleep for a few hundred milliseconds
thinking it might be a race condition, with no change. What's going on
here? I'm using the 1.5r2 SDK.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---