我敢肯定这很简单,我只是忽略或做一些愚蠢的事情,但我保存了一些数据库的输入,一个是在微调选择的选项,并使用其存储为文本:设置微调选择基于以前的微调选择
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来设置在从同一个数组读取的新微调器上的选择。
请欣赏一些愚蠢的援助请。
首先添加调试日志并输出:'takeBundledData.getString(“clickeduCategPos”)'。这可能不是你认为的。 – 2012-07-27 19:34:54
对不起,也许你可以帮助我。我正在使用 'bundleduCategPos = takeBundledData.getString(“clickeduCategPos”); \t \t Log.d(TAG,bundleduCategPos);' 但日志中没有显示任何内容。我做对了吗?我假设我应该能够看到logcat中的输出? – Ronnie 2012-07-28 01:55:17
我已经封锁了我的'setSelection()'并使用textviews和toasts来确认输出。 'takeBundledData.getString(“clickeduCategPos”)'的输出是“4 Position”,这是正确的。 'String.valueOf(bundleduCategPos.charAt(0));'的输出是4,这是正确的。 当试图输出'Integer.parseInt(CategoryPosition)'时,它崩溃了,显然它与转换有关。 你知道另一种将字符串转换为int的方式吗? – Ronnie 2012-07-28 02:10:17