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.

 switch.setChecked( true ); switch.setDefaultValue(true); 

Por favor, ayúdame, si alguien sabe cómo establecer este valor predeterminado. Gracias de antemano Lidia

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?

  • Ejecutar applet en la tableta Android
  • Java.lang.NullPointerException: Intenta invocar el método virtual 'int android.view.ViewGroup.getPaddingLeft ()' en una referencia de objeto nulo
  • Eclipse no se inicia (Ubuntu): termina JVM. Código de salida = 2
  • Verificar si el punto está dentro de un cono en el espacio 3D
  • Java.lang.ClassNotFoundException en dalvik.system.BaseDexClassLoader.findClass
  • PowerManager.WakeLock en dispositivos Android
  • Android Studio, Java 8 y Función
  • Utilizar ColorMatrix o HexColor en BlendModeFilter - Android?
  • Android: hace que la actividad A espere a que la actividad B termine y devuelva algunos valores
  • Java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager aplicación facebook android
  • ¿Cómo difieren las operaciones popBackStack () y replace ()?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.