私は現在、IndexOutOfBoundsException
追跡できないように見える問題を引き起こしています。が取り込まれたスピナーがありString[]
ます。デバイスの製造元に応じて、String[] (and hence Spinner object)
3 つの値または 1 つの値のいずれかになります。
保存した Spinner の選択内容を として保存int
し、作成SharedPreferences
時にロードします。Activity
スピナーの値が 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)