我确信这很简单,我只是忽略或做一些愚蠢的事情,但我将一些输入保存到数据库中,一个是在微调器中选择的选项,并使用以下方式将其存储为文本:
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设置新的选择从同一个数组中读取的微调器。
请欣赏一些愚蠢的帮助。
答案 0 :(得分:0)
好的我已经解决了......找到了2个不同的问题。 问题1 - 当我输入字符串而不首先转换为int时,没有进行选择。我意识到选择实际上是在制作,但我没有看到它,因为我使用
update_category_spinner.setSelection(Integer.parseInt(CategoryPosition));
而不是
update_category_spinner.setSelection(Integer.parseInt(CategoryPosition), true);
下一期,NumberFormatException正在发生,因为我有3个微调器并且正在保存3套
getSelectedItemId();
到我的数据库,然后再回电话。
,我不小心从错误的列中调用了其中一个IdCategoryPosition = String.valueOf(bundleduCategPos.charAt(0));
从String数组返回所选字符串的第一个字符,在上面的示例中为“N”。