Я пытаюсь настроить активность настроек, но мое приложение продолжает сбой, и я получаю следующий logcat:
FATAL EXCEPTION: main java.lang.RuntimeException: не удается запустить активность ComponentInfo {com.appthing.myapp/com.appthing.myapp.Main}: java.lang.ClassCastException: java.lang.String не может быть отброшено java.lang.Integer
Вызвано: java.lang.ClassCastException: java.lang.String не может быть cast to java.lang.Integer 07-24 16: 37: 59.556: E/AndroidRuntime (17384): в android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:240)
В моей работе Main
у меня есть следующий код внутри метода onResume()
:
SeekBar tipSeekBar = (SeekBar) findViewById(R.id.tipSeekBar);
SeekBar splitSeekBar = (SeekBar) findViewById(R.id.splitSeekBar);
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(this);
tipSeekBar.setProgress(preferences.getInt("defaultTip", 15));
splitSeekBar.setProgress(preferences.getInt("defaultSplit", 1));
tipSeekBar.setMax(preferences.getInt("maxTip", 25));
splitSeekBar.setMax(preferences.getInt("maxSplit", 10));
Вот что я имею в классе Preference (по запросу):
addPreferencesFromResource(R.layout.preferences);
// I was told in tutorials this is all I need in the oncreate method
Я не понимаю, почему он говорит что-то о строке. Все мои значения являются целыми числами, и я использую android:inputType="number"
, чтобы убедиться, что вводится только int. Я также попытался удалить и переустановить приложение, чтобы очистить кеш, и ничего не работает.
ПОСТАНОВИЛИ:
"Ваши предпочтения в XML, даже если вы установите андроид: inputType =" number "по-прежнему сохраняются как строка" (Waza_Be).
Все, что мне нужно было сделать, это сделать Integer.parseInt()
, чтобы получить правильное значение.