我的Android应用程序中有一个“设置活动”。设置中有默认值res/xml/preferences.xml
。我遇到的问题是,直到用户真正进入设置页面,才保存默认首选项,并且我无法检索存储在XML文件中的默认值。
代码:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<EditTextPreference
android:defaultValue="xml default value"
android:title="foo"
android:summary="bar"
android:key="mykey" />
</PreferenceScreen>
package bh.gov.cio.gdt.app;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
public static class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
String myvalue = settings.getString("mykey", "code default value")
Log.d(LOG_TAG, myvalue);
首次安装该应用程序时,对的调用settings.getString
返回"code default value"
。但是,一旦用户至少打开一次设置活动,它将返回xml default value
。
我想避免在第一次运行该程序时强迫用户进入设置页面。我还想避免在XML文件和代码中两次对默认值进行编码。
我相信您需要参加活动 OnCreate()
PreferenceManager.setDefaultValues(this, R.xml.advanced_preferences, false);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句