Cómo establecer el valor predeterminado de SwitchPreference en android?
¿Alguien usó la clase SwitchPreference
de android y sabe cómo establecer el valor predeterminado? Lo he implementado mediante programación:
SwitchPreference switch = new SwitchPreference(this); switch.setKey("preference_my_key"); switch.setTitle(R.string.preference_title_my_title); switch.setSummary(R.string.preference_summary_my_summary); Boolean isChecked = Manager.myMethodIsChecked(MyActivity.this); switch.setChecked( isChecked ); switch.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { try { boolean selected = Boolean.parseBoolean(newValue.toString()); if ( !selected ) { //do something } } catch (Throwable e) { e.printStackTrace(); } return true; } }); category.addPreference(switch);
Preferencias guarda todos los valores en su archivo xml: app_package_name_preferences.xml .
La primera vez que se carga la aplicación, el conmutador tiene valores " falsos " predeterminados.
Pero necesito a veces hacer valor por defecto " verdadero ".
He intentado algunos métodos, pero nada funciona.
- Preferencias de Android en evento onclick
- Proguard alternativa para ofuscar aplicaciones Android usando bibliotecas de terceros precompiladas
- Proporcionando retraso entre eventos en UiAutomator Android
- Calcular la diferencia entre dos veces android
- Acceso a variables por nombre en un bucle
switch.setChecked( true ); switch.setDefaultValue(true);
Por favor, ayúdame, si alguien sabe cómo establecer este valor predeterminado. Gracias de antemano Lidia
- Android - Causado por: android.view.ViewRootImpl $ CalledFromWrongThreadException
- Actualización de Xamarin hace que "el archivo de clase tenga versión incorrecta 52.0, debe ser 50.0" error
- Error al guardar la imagen en sdcard
- ¿Hay alguna biblioteca o algoritmo para el calendario persa (Shamsi o Jalali) en Android?
- Pantalla negra cuando se abre la aplicación
- ¿Cómo puedo generar un número aleatorio en un rango específico en Android?
- ¿Hay una manera de comunicarse con dispositivos USB en Android?
- ¿Qué lenguajes de programación se pueden utilizar para desarrollar en Android?
Encontré las soluciones para mi problema y lo publicaré en caso de que alguien tenga el mismo problema.
Como dije, escribo las preferencias mediante programación
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); PreferenceCategory catView = new PreferenceCategory(this); catView.setTitle(R.string.preference_category_view); root.addPreference(catView); final SwitchPreference switchSplash= new SwitchPreference(this); switchSplash.setKey(PreferenceKeys.SPLASH); //-----the above code---- switchSplash.setChecked(false); // LINE 1 catView.addPreference(switchSplash); // LINE 2
En depuración encontré que el verdadero valor se establece en la línea 1 , pero cuando agrego switchSplash en catView , los valores de switchSplash se restablece a false , porque catView establece valores de prefereces xml.
Es por eso que cambié todos los valores necesarios en el xml
SharedPreferences.Editor editor = root.getPreferenceManager().getSharedPreferences().edit(); editor.putBoolean(PreferenceKeys.SPLASH, true); editor.commit();
Eso es.
Si está intentando obtener el valor booleano de newValue
boolean selected = Boolean.parseBoolean(newValue.toString());
Su ir sobre esto de una forma extraña y supongo que incorrecta. Si newValue es un booleano, (verifique con instanceof), simplemente mire newValue para que sea un booleano.
boolean selected = (Boolean) newValue;
¿Es eso lo que estás tratando de lograr?
- ¿Cómo hacer que WakefulService (IntentService) espere hasta que MediaPlayer termine?
- Min-sdk mayor que las versiones anteriores android