Предпочтения Android вернуться к сводке по умолчанию

В настоящее время я использую предпочтительные действия с фрагментами. Я использую android:summary в xml-файле, определяя эти предпочтения, чтобы установить поясняющую подпись для пользователя, а затем setSummary для каждого предпочтения, когда пользователь изменяет значение предпочтения, и все работает нормально. Но когда пользователь очищает свой выбор в любой EditTextPreference, я хотел бы отобразить обратно поясняющий текст из тега xml android:summary. Как я мог этого добиться?

Заранее спасибо за помощь.

1 ответ

ОК, я понял это. Просто добавьте строку ресурса для каждого ключа предпочтения с именем "key_summary" и используйте его как android:summary в файле xml, определяющем предпочтения. Затем в функции 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);
        }
    }
}
Другие вопросы по тегам