Usando un simple EditTextPreference
en mi actividad preferencias:PreferenceActivity: guardar el valor como número entero
<EditTextPreference
android:key="SomeKey"
android:title="@string/some_title"
android:summary="..."
android:numeric="integer"
android:maxLength="2"
/>
¿Hay alguna manera de que este valor de configuración se guarda como número entero? Ahora parece que sólo permite introducir números, pero el valor todavía se guarda como cadena:
Calling:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int value = preferences.getInt("SomeKey", -1);
me tira java.lang.ClassCastException: java.lang.String
, y:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String value = preferences.getString("SomeKey", "-1");
recupera el valor éxito.
Cómo hacer que PreferenceActivity
guarde el valor como número entero de forma predeterminada?
@Brutall, me gustaría agradecerle por mejorar el código. Pero alguien me dijo que el nuevo código es ... demasiado largo, y él lo rechazó. Ah, pero ¿qué hace la gente si el código anterior es malo y necesita ser reemplazado, pero no lo hacen porque el nuevo es ... largo? Incluso si es mejor Oh mi, eso es genial! Este es lugar para programadores? Tengo algunos proyectos de código abierto, y estoy abriendo para cualquier cambio en mi código. ¡Qué vergüenza para él! De todos modos, muchas gracias, Brutall. –
Por cierto, todo lo que hago es: establecer el tipo de entrada al número; agregue un 'TextWatcher', para asegurarse de que el texto que ingresa no esté vacío, y el valor predeterminado es' 0'. –
Estoy obteniendo un error de tiempo de ejecución en 'return String.valueOf (getPersistedInt (-1));', no se puede iniciar la actividad debido a esa línea – ibaguio