android偏好回到默认摘要

时间:2014-06-17 09:33:02

标签: android android-activity fragment preference summary

我目前正在使用片段的偏好活动。我在定义这些首选项的xml文件中使用android:summary来为用户设置解释标题,然后在用户更改首选项值时对每个首选项设置setSummary,一切正常。 但是当用户在任何EditTextPreference中清除他/她的选择时,我想从xml标签android:summary中显示解释文本。我怎么能做到这一点?

提前感谢您的帮助。

1 个答案:

答案 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);
        }
    }
}