我目前正在使用片段的偏好活动。我在定义这些首选项的xml文件中使用android:summary来为用户设置解释标题,然后在用户更改首选项值时对每个首选项设置setSummary,一切正常。 但是当用户在任何EditTextPreference中清除他/她的选择时,我想从xml标签android:summary中显示解释文本。我怎么能做到这一点?
提前感谢您的帮助。
答案 0 :(得分:0)
好的,我明白了。 只需为名为“key_summary”的每个首选项键添加一个资源字符串,并在定义首选项的xml文件中将其用作android:summary。 然后在onSharedPreferenceChanged函数中,只需加载相应的字符串作为摘要,如下所示:
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
Preference preference = findPreference(key);
if(preference instanceof EditTextPreference)
{
EditTextPreference editPref = (EditTextPreference)preference;
String szPref = editPref.getText();
if(null!=szPref&&0<szPref.length())
editPref.setSummary(szPref);
else
{
Activity activity = getActivity();
int nSummary = getResources().getIdentifier(key + "_summary", "string", activity.getPackageName());
if(0<nSummary)
editPref.setSummary(getString(nSummary));
else
editPref.setSummary(szPref);
}
}
}