Search code examples
androidpreference

Cannot get the preferences from preferencesactivity


MainActivity

   @Override public void onCreate() {
        super.onCreate();
        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
         boolean checked = settings.getBoolean("test", false);

    }

preferences.xml

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
        android:title="@string/settings">
    <CheckBoxPreference android:key="test" android:title="test" android:defaultValue="false"/>
</PreferenceScreen>

Setting

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Setting extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);
    }

}

the result of checked is always false although i tick the checkbox


Solution

  • If we set 'android:persistent="true"' for 'CheckBoxPreference' then we can see the value changed next time 'onCreate' is called.