[英]how to get value from SharedPreferences?
I have been making application which uses Preferences. 我一直在制作使用首选项的应用程序。 I have following PreferenceActivity:
我有以下PreferenceActivity:
public class PreferencesActivity extends PreferenceActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.addPreferencesFromResource(R.xml.prefences);
PreferenceManager.setDefaultValues(this, R.xml.prefences, true);
}
}
also I have following preferences.xml: 我也有以下preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<EditTextPreference android:key="device_id" android:title="Device ID"/>
<ListPreference android:key="update_time" android:entries="@array/update_keys" android:entryValues="@array/update_values" android:title="Update time" android:defaultValue="28800000"/>
</PreferenceScreen>
and I try to get values from SharedPreferences in onCreate() method my main Activity: 我尝试从我的主要活动onCreate()方法中的SharedPreferences获取值:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initializeOtherElements();
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Log.e("key", String.valueOf(prefs.getString("device_id", "1")));
}
I have added PreferencesActivity into manifest. 我已将PreferencesActivity添加到清单中。 But I see "1" in Log always.
但是我总是在Log中看到“ 1”。 Where have I made a mistake?
我在哪里弄错了?
You always see 1 in the log because you have mentioned "1" as the default value to return if "device_id" preference haven't been set. 您始终在日志中看到1,因为您提到“ 1”作为默认值,如果尚未设置“ device_id”首选项,则返回默认值。 If you set the "device_id" preference to say ABC, ABC will be returned.
如果将“ device_id”首选项设置为说ABC,则将返回ABC。 If you haven't set "device_id" "1" will be returned.
如果您尚未设置“ device_id”,则将返回“ 1”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.