我正在尝试将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();
谢谢!
答案 0 :(得分:0)
什么不起作用?
有一个名为Spinner的示例应用程序,其中包含一个示例Spinner。它将Spinner的状态保存到onPause()中保存的首选项,并在onResume()中恢复它。
答案 1 :(得分: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();
}