Предпочтения 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);
}
}
}