我敢肯定這很簡單,我只是忽略或做一些愚蠢的事情,但我保存了一些數據庫的輸入,一個是在微調選擇的選項,並使用其存儲爲文本:設置微調選擇基於以前的微調選擇
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