0

我正在尝试将 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();

谢谢!

4

2 回答 2

0

什么不工作?

有一个名为 Spinner 的示例应用程序,其中包含一个示例 Spinner。它将 Spinner 的状态保存到 onPause() 中保存的首选项中,并在 onResume() 中恢复它。

于 2012-03-06T00:58:20.043 回答
0

我找到了答案,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();
}
于 2012-03-06T23:13:37.950 回答