<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检索值时。微调器应根据具体值设定...... 我该如何实现任何想法?
答案 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);