I'm having some problem with setSelection on a Spinner. I set the value to be pre-selected when the spinner is shown in code, but it has no effect and the first alternative in the list is always selected. The code looks like this:
LayoutInflater li = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); final View dialogView = li.inflate(R.layout.edit_event, null); ... ArrayList<String> routes = new ArrayList<String>(); // routes filled with values at runtime ... ArrayAdapter<String> aa = new ArrayAdapter<String>(GOFdroid.this, android.R.layout.simple_spinner_item, routes); aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner destSpinner = (Spinner) dialogView.findViewById(R.id.edit_event_destination); String dest = events.get(pos).getDestination(); int routesPos = routes.indexOf(dest); Log.d(TAG, "Dest: " + dest + ", pos: " + routesPos); destSpinner.setSelection(routesPos); destSpinner.setAdapter(aa);
The code works as intended except for the setSelection-part, and I just can't figure out why.
The XML-layout of the spinner looks like this (not the entire layout, only the spinner part):
// DESTINATION <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Destination:" /> <Spinner android:id="@+id/edit_event_destination" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/choose_dest" android:layout_marginBottom="10dip" android:text="" />
Help is very much appreciated!
Linus
Try moving the call to setSelection()
after the call to setAdapter()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With