我的旋转器遇到了麻烦。每当我从中选择一个值时,微调器只会获取列表中的第一个值。
例如,我有一个带有值1,2,3,4,5的微调器。当我从微调器1中选择4时,如果我选择任何其他值,则相同。
我实施Spinner错了吗?或者从微调器中取出错误的值?
微调
<Spinner
android:id="@+id/heatSpinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/heat_title"
android:entries="@array/heat"/>
阵列/热
<string-array name="heat">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
</string-array>
从Spinner获取值
Spinner heat = (Spinner) dialog.findViewById(R.id.heatSpinner);
final String heatValue = heat.getSelectedItem().toString();
final int finalHeat = Integer.parseInt(heatValue);
答案 0 :(得分:0)
让我们看一下你问题中的4º代码块。
你确定吗
int servingSize = servings.getInt(0);
获得您想要的价值吗?
并在
seekBar.setProgress(size);
这个'尺寸'参数是什么?您确定要将正确的值传递给setProgress()方法吗?我没有在你的代码中看到这个'size'变量。
答案 1 :(得分:0)
我遇到了类似的问题,我不知道如果这种方式是最好的方式,但它对我有用。
您需要为每个微调器设置一个setOnItemSelectedListener
,然后您可以将变量的值设置为微调器的项目。
所以你的微调器可能看起来像这样,这可能不是最好看的方法,但无论如何它对我有用,希望它有帮助
final Spinner heat = (Spinner) dialog.findViewById(R.id.heatSpinner);
heat.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
final String heatValue = heat.getSelectedItem().toString();
int finalHeat = Integer.parseInt(heatValue);
db1.updateHeat(finalHeat, recipe_number);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});