Android : Android PreferenceManager.setDefaultValues trouble

on Monday, October 13, 2014


I have a problem with preference default values. I'm trying to set a default value from xml file and then retrieve it. This is my code:



public class MainActivity extends Activity {
int prefValue;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

PreferenceManager.setDefaultValues(this, R.xml.preferences, true);

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);

prefValue = settings.getInt("settingValue", 3);
Log.v("TAGSETT", "p1 "+prefValue);

Editor editor = settings.edit();
editor.putInt("settingValue", 25);
editor.commit();

prefValue = settings.getInt("settingValue", 3);
Log.v("TAGSETT", "p2 "+prefValue);
}


and this is preferences.xml:



<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference android:key="settingValue" android:persistent="true" android:defaultValue="10"/>
</PreferenceScreen>


This is the output:



p1 3
p2 25


but in reality I expect this:



p1 10
p2 25


What's wrong? Thanks in advance.


0 comments:

Post a Comment