Hi, I saw several people reporting an issue with Spinner.setSelection that does not seem to work as expected on the second call: the item selection is correctly updated in the list subframe, but not in the text displayed when the spinner is closed
Anbody knows a workarround? Thierry. On 4 juin 2009, 21:46, Ben Roberts <divestocl...@gmail.com> wrote: > There are at least two other people who have encountered this problem: http://groups.google.com/group/android-beginners/browse_thread/thread...http://groups.google.com/group/android-developers/browse_thread/threa. .. > > Any ideas? Is it a bug? > > At the very least, does anyone know of an open source app that uses a > Spinner on a layout from which another Activity can be launched? > > On Jun 1, 9:17 pm, Ben Roberts <divestocl...@gmail.com> wrote: > > > 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. -- Thierry. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en