我有2个设置为初始值的微调器。然后我希望用户选择新值。然后我试图获得这些价值观。但是,getSelectedItem()
仅返回初始值 - 即使新选择显示在微调器中,也不会保存更改:
Spinner spinner1 = (Spinner) view.findViewById(R.id.lessonTypeSpinner);
Spinner weatherConditionS = (Spinner) view.findViewById(R.id.weatherConditionSpinner);
spinner1.setSelection(hmlessonType.get(lessonType));
weatherConditionS.setSelection(hmWeatherCondition.get(weatherCondition));
Button update = (Button) view.findViewById(R.id.updateButton);
final String lessonTypeCopy = spinner1.getSelectedItem().toString();
final String weatherConditionCopy = weatherConditionS.getSelectedItem().toString();
pref = this.getActivity().getSharedPreferences(this.PREF_FILENAME, 0);
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor edit = pref.edit();
edit.putString("lessonType", lessonTypeCopy);
edit.putString("weatherCondition", weatherConditionCopy);
edit.apply();
}
});
答案 0 :(得分:0)
获取onClick()方法中的值。
你应该改变它:
Spinner spinner1 = (Spinner) view.findViewById(R.id.lessonTypeSpinner);
Spinner weatherConditionS = (Spinner) view.findViewById(R.id.weatherConditionSpinner);
spinner1.setSelection(hmlessonType.get(lessonType));
weatherConditionS.setSelection(hmWeatherCondition.get(weatherCondition));
Button update = (Button) view.findViewById(R.id.updateButton);
pref = this.getActivity().getSharedPreferences(this.PREF_FILENAME, 0);
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String lessonTypeCopy = spinner1.getSelectedItem().toString();
final String weatherConditionCopy = weatherConditionS.getSelectedItem().toString();
SharedPreferences.Editor edit = pref.edit();
edit.putString("lessonType", lessonTypeCopy);
edit.putString("weatherCondition", weatherConditionCopy);
edit.apply();
}
});