Używając prostego EditTextPreference
w mojej działalności preferencje:PreferenceActivity: zapisać wartość jako liczba całkowita
<EditTextPreference
android:key="SomeKey"
android:title="@string/some_title"
android:summary="..."
android:numeric="integer"
android:maxLength="2"
/>
Czy istnieje sposób, że wartość ta konfiguracja będzie zapisany jako liczba całkowita? Teraz wydaje się, że tylko pozwala na wprowadzanie cyfr, ale wartość ta jest jeszcze zapisany jako ciąg:
numerem:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int value = preferences.getInt("SomeKey", -1);
rzuca mi java.lang.ClassCastException: java.lang.String
oraz:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String value = preferences.getString("SomeKey", "-1");
pobiera wartość pomyślnie.
Jak ustawić PreferenceActivity
, aby domyślnie zapisać wartość jako liczbę całkowitą?
@Brutall, chciałbym podziękować za ulepszenie kodu. Ale ktoś powiedział mi, że nowy kod jest ... zbyt długi, a on go odrzucił. Och, ale co robią ludzie, jeśli stary kod jest zły i trzeba go wymienić, ale nie robią tego, ponieważ nowy jest ... długi? Nawet jeśli jest lepiej. O, mój, to WIELKI! To jest miejsce dla programistów? Mam kilka projektów open source i otwieram wszelkie zmiany w moim kodzie. Jak mu wstyd! W każdym razie, dziękuję bardzo, Brutall. –
Btw, wszystko co robię to: ustawić typ wejścia na numer; dodaj 'TextWatcher', aby upewnić się, że użytkownik tekstu nie jest pusty, a domyślną wartością jest' 0'. –
im wystąpienie błędu runtime na 'return String.valueOf (getPersistedInt (-1));', nie może rozpocząć działalność z powodu tej linii – ibaguio