Android PreferenceManager.setDefaultValues麻烦

时间:2014-10-13 13:13:46

标签: android preferences

我的首选项默认值存在问题。 我正在尝试从xml文件设置默认值,然后检索它。 这是我的代码:

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

这是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>

这是输出:

p1 3
p2 25

但实际上我希望如此:

p1 10
p2 25

怎么了? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

然后将默认的int值更改为 10 ,即。变化

prefValue  = settings.getInt("settingValue", 3);

prefValue  = settings.getInt("settingValue", 10);