Как объяснено здесь: Получить ключ, а не значение, выбора ListPreference - Возможно? и во многих других местах довольно легко получить доступ к меткам ListPreferences из PreferenceActivity.
Что мне нужно сделать, так это прочитать метку, соответствующую текущему выбранному из основного действия. Но я не могу найти способ.
Например, в моей основной деятельности я
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Я хотел бы использовать что-то вроде:
ListPreference listPreference = (ListPreference) settings.findPreference("list_of_countries");
А затем обработайте его, чтобы получить текущее значение и метку.
Обновление 01
Я попытался использовать другой способ получения итогового значения (название страны в моем примере), которое мне нужно, чтобы сообщить покупателю, что он выбрал. Я не могу дать ему код!
private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
String stringValue = value.toString();
String stringSummary = preference.getSummary().toString();
String stringKey = preference.getKey().toString();
if (stringKey.equals("list_of_countries")){
MyActivity.countryName = stringSummary;
}
Нечего делать... вызывается OnPreferenceChangeListener.... ПЕРЕД изменением предпочтения, т. е. когда щелкнут один элемент, поэтому мне удается получить только предыдущую сводку. Я не нашел способа.
listPreference
? - person SweetWisher ツ   schedule 18.12.2014SharedPreferences
, такой какsettings
, не имеет методаfindPreferences(...)
. - person donnadulcinea   schedule 22.12.2014