Ответ 1
в вашем PreferenceActivity сделайте что-то вроде:
ListPreference listPreference = (ListPreference) findPreference("lpBirim");
CharSequence currText = listPreference.getEntry();
String currValue = listPreference.getValue();
XML файл моего ListPreference
<ListPreference android:key="lpBirim" android:title="Birim"
android:summary="" android:defaultValue="0" android:persistent="false"/>
Как получить выделенный текст и выбранное значение?
в вашем PreferenceActivity сделайте что-то вроде:
ListPreference listPreference = (ListPreference) findPreference("lpBirim");
CharSequence currText = listPreference.getEntry();
String currValue = listPreference.getValue();
Вы можете использовать этот фрагмент, чтобы получить значение:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.getString("lpBirim","-1")
Посмотрите учебник
Вот пример:
@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;
}
Вы можете использовать findPreference()
, чтобы получить ListPreference
, который имеет все необходимые методы. Чтобы он работал, вам нужно сначала использовать или расширить PreferenceFragment
.