【问题标题】:android preference back to default summaryandroid偏好回到默认摘要
【发布时间】:2014-06-17 09:33:02
【问题描述】:

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

提前感谢您的帮助。

【问题讨论】:

  • 您应该将默认 summray 设置为 strings.xml 中的字符串资源,并且您可以随时将其设置回来。
  • 是的,但是我的类是用于每个 EditTextPreference 的通用类,而且我有很多。我不会在该类中添加特定条目来获取每个条目的相应字符串。我想要一种更通用的方法......像 setSummary(getDefaultSummary())... :)

标签: android android-activity fragment preference summary


【解决方案1】:

好的,我想通了。 只需为每个名为“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);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2020-11-18
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多