android 首选项 getString 返回空值

android preference getString returning null value

我有一个 android 首选项屏幕,其中包含语言选择列表首选项

 <ListPreference
   android:key="prefLanguage"
   android:entries="@array/langPref"
   android:summary="@string/pref_set_lang_summary"
   android:entryValues="@array/langPrefValues"
   android:title="@string/pref_set_language"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:defaultValue="1" />

我正在尝试在 oncreate 操作中获取偏好值

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
String langPref = sharedPrefs.getString("langPrefValues", "NULL");

Log.i("MyActivity",langPref);

但是 logcat 显示 MyActivity 字符串的空值。

您当前正在尝试使用 entryValues 数组 langPrefValues 的名称获取首选项值,这不是有效的首选项值。

您应该改为使用首选项键来获取当前首选项值,即 xml 中提供的 prefLanguage

String langPref = sharedPrefs.getString("prefLanguage", "NULL");