2
У меня проблема с значениями по умолчанию для предпочтений. Я пытаюсь установить значение по умолчанию из xml-файла и затем извлечь его. Это мой код:Android PreferenceManager.setDefaultValues проблема
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
Что случилось? Спасибо заранее.
выход "p1 3" означает, что "settingValue" не выставиться в SharedPreferences. Использование "prefValue = settings.getInt (" settingValue ", 10);" prefValue получает «10» не из настроек, а из параметра, переданного в «settings.getInt();» – Andrea