私は現在、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)