android – 获取ListPreference选择的Key,而不是值 – 可能吗?

获取ListPreference中当前所选项的值非常简单:

String selected = sharedPrefs.getString(
    getString(R.string.list_preference_array),
    "default string"
);

但现在我需要获取当前所选项目的关键字.这可能吗?

为了澄清,XML文件中的典型ListPreference定义具有以下组件:

<ListPreference 
    android:key="@string/list_preference_array"
    android:title="Title of ENTIRE list (not seen by user?)"
    android:summary="this is what the user sees in small fonts" 
    android:defaultValue="just in case"
    android:entries="@array/user_friendly_labels" 
    android:entryValues="@array/code_meaningful_strings"
    android:dialogTitle="User Prompt(big font)" 
    android:showDefault="true"
    android:showSilent="true" 
/>

sharedPrefs.getString()返回的是android:entryValues中的当前选择.我感兴趣的是从android:entries的当前选择.我错误地称它为“关键”但实际上它是一个“相应的标签”,它必须与实际内容不同.

有点猜测:

int index = mylistpreference.findIndexOfValue(selected)  // <- selected taken from your code above
String entry = mylistpreference.getEntries()[index];
相关文章
相关标签/搜索