0

我有语言选择的列表偏好的机器人偏好屏幕安卓偏好的getString返回空值

<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字符串的空值。

回答

1

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

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

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