2017-04-07 53 views
0

我有2個spinners設置爲初始值。然後我希望用戶選擇新的值。然後我試圖獲得這些價值觀。然而,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

獲取裏面的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(); 
     } 
    });