0

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

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 将选择设置在新微调器上从同一个数组中读取。

请提供一些愚蠢的帮助。

4

1 回答 1

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));

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

于 2012-07-28T03:34:56.257 回答