根据先前的微调器选择设置微调器选择

时间:2012-07-27 19:16:21

标签: android spinner android-spinner

我确信这很简单,我只是忽略或做一些愚蠢的事情,但我将一些输入保存到数据库中,一个是在微调器中选择的选项,并使用以下方式将其存储为文本:

idCategory = (add_category_spinner.getSelectedItemPosition() + " Position");

现在,在另一个活动中,我正在尝试将另一个微调器设置为完全相同的选择。我是这样做的:

private String CategoryPosition

onCreate(...etc)

update_category_spinner = (Spinner) findViewById(R.id.update_category_spinner);
    ArrayAdapter<CharSequence> category_adapter = ArrayAdapter.createFromResource(
            this, R.array.category_array, android.R.layout.simple_spinner_item);

    category_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    update_category_spinner.setAdapter(category_adapter);

bundleduCategPos = takeBundledData.getString("clickeduCategPos");

CategoryPosition = String.valueOf(bundleduCategPos.charAt(0));
update_category_spinner.setSelection(Integer.parseInt(CategoryPosition)); 

现在,当我尝试打开该特定活动时,我收到以下logcat错误:

java.lang.NumberFormatException: Invalid int: "N"

根据保存到我的数据库的微调器选择,'invalid int'字母可以更改。基本上,整个数据库被保存为字符串集,因此附加文本

".getSelectedItemPosition() + " Position");"

我将它拉进去,转换为char,找到第一个零索引字符,该字符应该是微调器选择的positionId,并将其转换回int,最后使用该int设置新的选择从同一个数组中读取的微调器。

请欣赏一些愚蠢的帮助。

1 个答案:

答案 0 :(得分:0)

好的我已经解决了......找到了2个不同的问题。 问题1 - 当我输入字符串而不首先转换为int时,没有进行选择。我意识到选择实际上是在制作,但我没有看到它,因为我使用

update_category_spinner.setSelection(Integer.parseInt(CategoryPosition));

而不是

update_category_spinner.setSelection(Integer.parseInt(CategoryPosition), true);

下一期,NumberFormatException正在发生,因为我有3个微调器并且正在保存3套

getSelectedItemId();

到我的数据库,然后再回电话。

,我不小心从错误的列中调用了其中一个Id
CategoryPosition = String.valueOf(bundleduCategPos.charAt(0));

从String数组返回所选字符串的第一个字符,在上面的示例中为“N”。