Значение спиннера в ListPreference - PullRequest
0 голосов
/ 06 марта 2012

Я пытаюсь сохранить значение Spinner в ListPreference.Я не могу заставить его работать.Я пытался заставить это работать долгое время.У кого-нибудь есть решение или кто-то может указать мне правильное направление.

Так вот, что у меня есть:

SharedPreferences preferences;

private static final String KEY_WEIGHT_PREFERENCE = "weightunit";
...

preferences = PreferenceManager.getDefaultSharedPreferences(this);
...

Это основная часть, как Spinner, так и захват ListPreferenceте же данные из массива xml.

SharedPreferences.Editor edit = preferences.edit();
    Spinner weight = (Spinner) findViewById(R.id.weightUnitSpinner);
    int selectedPosition = weight.getSelectedItemPosition();
            edit.putInt(KEY_WEIGHT_PREFERENCE, selectedPosition);
            edit.commit();

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Я нашел ответ, SpinnerValue необходимо сохранить как строку, чтобы быть распознанным ListPreference.

Вот мой окончательный код:

private void updatePreferenceWeightValue() {

    SharedPreferences.Editor edit = preferences.edit();
    Spinner weight = (Spinner) findViewById(R.id.weightUnitSpinner);
    int selectedPosition = weight.getSelectedItemPosition();
    String weightValue = "";
    weightValue = Integer.toString(selectedPosition);
    edit.putString(KEY_WEIGHT_PREFERENCE, weightValue);
    edit.commit();
}
0 голосов
/ 06 марта 2012

Что не работает?

Существует пример приложения Spinner, которое содержит образец Spinner.Он сохраняет состояние Spinner для сохраненных настроек в onPause () и восстанавливает его в onResume ().

...