我目前正在造成一个IndexOutOfBoundsException
我似乎无法追踪的问题。我有一个由String[]
. 根据设备的制造商,这String[] (and hence Spinner object)
将具有 3 个值或 1 个值。
我将保存的 Spinner 选择存储为int
in并在创建SharedPreferences
时加载它。Activity
在 Spinner 只有 1 个值的情况下,如果它加载SharedPreferences
并且保存的值是2
,我将该微调器设置为选择项目位置 2,它会崩溃(显然)。我正在尝试捕获该异常,以便我可以将其设置为0
,但我似乎永远无法捕获它Exception
。
代码结构如下:
Populate Spinner according to something
Load up Saved Preferences
Check some value of saved preferences
try{
Set Spinner with that Preference
}
catch(Exception e)
{
Set Spinner with default value of 0
}
堆栈跟踪:
10-18 12:49:32.885: E/AndroidRuntime(15327): FATAL EXCEPTION: main
10-18 12:49:32.885: E/AndroidRuntime(15327): java.lang.IndexOutOfBoundsException: Invalid index 2, size is 1
10-18 12:49:32.885: E/AndroidRuntime(15327): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
10-18 12:49:32.885: E/AndroidRuntime(15327): at java.util.ArrayList.get(ArrayList.java:304)
10-18 12:49:32.885: E/AndroidRuntime(15327): at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
10-18 12:49:32.885: E/AndroidRuntime(15327): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:390)