How to set default value for SwitchPreference in Android?

Has anyone used a class SwitchPreferencefrom Android and know how to set the default value? I implemented this programmatically:

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);

Preferences saves all values in your XML file: app_package_name_preferences.xml. When you first load the application, the switch has the default value of " false ". But sometimes I need to make the default value " true ". I tried several methods but nothing works.

switch.setChecked( true );  
switch.setDefaultValue(true);
+7
source share
2 answers

As I said, I write the settings programmatically:

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

, LINE 1 true , switchSplash catView, switchSplash false, catView preferences.xml.
XML

SharedPreferences.Editor editor = root.getPreferenceManager().getSharedPreferences().edit();
editor.putBoolean(PreferenceKeys.SPLASH, true);  
editor.commit();
+6

boolean newValue

        boolean selected =   Boolean.parseBoolean(newValue.toString());      

, . newValue , ( instanceof), newValue Boolean.

        boolean selected =   (Boolean) newValue;

, ?

0

All Articles