Как получить выделенный текст и значение Android ListPreference - PullRequest
18 голосов
/ 27 мая 2011

XML-файл моего ListPreference

<ListPreference android:key="lpBirim" android:title="Birim"
        android:summary="" android:defaultValue="0"  android:persistent="false"/>

Как получить выделенный текст и выбранное значение?

Ответы [ 5 ]

39 голосов
/ 17 октября 2011

в вашей PreferenceActivity сделайте что-то вроде:

ListPreference listPreference = (ListPreference) findPreference("lpBirim");
CharSequence currText = listPreference.getEntry();
String currValue = listPreference.getValue();
16 голосов
/ 27 мая 2011

Вы можете использовать этот фрагмент, чтобы получить значение:

 SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 
 sp.getString("lpBirim","-1")

Посмотрите учебник

10 голосов
/ 15 августа 2013

Вот пример:

@Override
public boolean onPreferenceChange(Preference preference, Object value)
{
    String textValue = value.toString();

    ListPreference listPreference = (ListPreference) preference;
    int index = listPreference.findIndexOfValue(textValue);

    CharSequence[] entries = listPreference.getEntries();

    if(index >= 0)
        Toast.makeText(preference.getContext(), entries[index], Toast.LENGTH_LONG);

    return true;
}
  • index содержит индекс выбранного элемента
  • textValue - выбранное значение
  • записей [index] -выделенный текст
1 голос
/ 01 февраля 2018
SharedPreferences Preference = PreferenceManager.getDefaultSharedPreferences(this); 
 Preference.getString("your list preference key","-1")
0 голосов
/ 27 октября 2016

Вы можете использовать findPreference(), чтобы получить ListPreference, который имеет все необходимые вам методы.Чтобы он работал, сначала нужно использовать или расширить PreferenceFragment.

...