我想从首选项中检索类的名称为V,VI,VII,但是,当我尝试获取它时,我将以格式5,6,7获取它们。
值存储如下
<string name="pref_standard">Standard</string>
<string-array name="pref_standard_list_titles">
<item>V</item>
<item>VI</item>
<item>VII</item>
<item>VIII</item>
<item>IX</item>
<item>X</item>
<item>XI</item>
<item>XII</item>
</string-array>
<string-array name="pref_standard_list_values">
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
</string-array>
首选项声明为
<ListPreference
android:key="standards_list"
android:title="@string/pref_standard"
android:defaultValue="10"
android:entries="@array/pref_standard_list_titles"
android:entryValues="@array/pref_standard_list_values"
android:negativeButtonText="@null"
android:positiveButtonText="@null"/>
我使用此
调用该值SharedPreferences sharedPref=PreferenceManager.getDefaultSharedPreferences(getActivity());
String standard_name=sharedPref.getString("standards_list","");
这只给出“pref_standard_list_values”中的数值。
如何获取“pref_standard_list_titles”中的文本值?
答案 0 :(得分:3)
只需删除
行即可android:entryValues="@array/pref_standard_list_values"
如果要在代码中翻译值,请使用
String[] texts = getResources().getStringArray(R.array.pref_standard_list_titles);
String[] values = getResources().getStringArray(R.array.pref_standard_list_values);
在standard_name
中查找values
的索引,在texts
答案 1 :(得分:0)
要获得参赛作品,请尝试:
String key = "standards_list";
Preference pref = findPreference(key);
if (pref instanceof ListPreference) {
ListPreference listPref = (ListPreference) pref;
CharSequence standard_name = listPref.getEntry(); // get currently saved into SharedPreferences single entry value
CharSequence[] standard_values = listPref.getEntries(); // get all entry values
}
有关更多用例,请阅读this。