微调器值不起作用

时间:2016-01-31 13:22:38

标签: android sqlite

我的旋转器遇到了麻烦。每当我从中选择一个值时,微调器只会获取列表中的第一个值。

例如,我有一个带有值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);

2 个答案:

答案 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
                }

            });