我定义了以下PreferenceActivity:
public class HiddenPreferences extends PreferenceActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.hidden_prefs);
}
}
其中hidden_prefs.xml看起来像这样:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference android:key="testRestUrl"
android:title="REST service URI"
android:defaultValue="http://service/url">
</EditTextPreference>
</PreferenceScreen>
现在我将值设置为默认值,并希望在其他一些活动中读取此首选项,如下所示:
PreferenceManager.setDefaultValues(this, R.xml.hidden_prefs, false);
prefs = PreferenceManager.getDefaultSharedPreferences(this);
但是在打电话时:
prefs.getString("testRestUrl", "");
我需要将默认值作为第二个参数,并且调用始终返回“”(如调用中所给出的),但不是XML android:defaultValue属性中给出的默认值。
如何获取首选项以获取默认值?
答案 0 :(得分:1)
如果您没有实例化PreferenceActivity,我不相信您可以这样做。
最好的办法是在strings.xml或config.xml中定义一个String,并在代码中使用R.strings.testRestUrl:
prefs.getString("testRestUrl", getString(R.string.testRestUrl));
和XML:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference android:key="testRestUrl"
android:title="REST service URI"
android:defaultValue="R.string.testRestUrl">
</EditTextPreference>
</PreferenceScreen>