重新设置Android Spinner设置值

时间:2012-09-27 19:00:13

标签: android android-spinner

 <Spinner
    android:id="@+id/spinner1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/editText2"
    android:layout_marginTop="22dp"
    android:entries="@array/categorylist"
    android:prompt="@string/category" />

我已经用上面的格式创建了微调器!

final Spinner spnr= (Spinner)findViewById(R.id.spinner1);
    String category=spnr.getSelectedItem().toString();

通过获取上述格式的值来推送db中的微调器值。

现在从db检索值时。微调器应根据具体值设定...... 我该如何实现任何想法?

2 个答案:

答案 0 :(得分:1)

只有在存储设置为Spinner条目的项目数组时,才可能这样做。您可以在微调器中设置所选项的位置。因此,您必须找出从数据库中查询的项目的索引。加载categorylist的StringArray并迭代数组,并将每个项目与从数据库中获取的项目进行比较。然后在spinner中将找到的项目的索引设置为选定项目。

    String[] list = getResources().getStringArray(R.array.categorylist);
    int index = 0;
    for(String item : list) {
        if(item.equals("your_item")){
            break;
        }
        index++;
    }
    spinner.setSelection(index);

答案 1 :(得分:1)

通过使用 setSelection(),您可以为微调器而不是第一个(默认情况下)设置特定选择。 现在你的问题是如何从你拥有的价值中获得头寸。 所以这是代码:

String yourString = "some value"; //the value you want the position for

ArrayAdapter yourAdap = (ArrayAdapter) mySpinner.getAdapter(); //cast to an ArrayAdapter

int spinnerPosition = yourAdap.getPosition(yourString);

//set the default according to value
spnr.setSelection(spinnerPosition);