我一直在制作使用偏好设置的应用程序。我有以下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);
}
}
我也有以下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>
我尝试从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")));
}
我已将PreferencesActivity添加到清单中。但我总是在Log中看到“1”。我在哪里弄错了?
答案 0 :(得分:0)
您总是在日志中看到1,因为如果尚未设置“device_id”首选项,则提及“1”作为返回的默认值。如果将“device_id”首选项设置为ABC,则将返回ABC。如果您尚未设置“device_id”,则将返回“1”。