我在Spinner上遇到setSelection问题。我将在代码中显示微调器时将值设置为预选,但它没有任何作用,并且始终选择列表中的第一个替代项。代码如下:

    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);

该代码按预期工作,除了setSelection-part之外,我只是不知道为什么。

微调器的XML布局如下所示(不是整个布局,只有微调器部分):
// 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="" />

非常感谢您的帮助!

莱纳斯

最佳答案

尝试将调用移至setSelection()之后,将其移至setAdapter()

关于android - Android:setSelection对Spinner无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1484528/

10-09 19:49