title: OnPreferenceChangeListener not called
body: <p>I'm trying to launch a date picker fragment when the user click on the preference item and display the selected date in the summary.</p>
  
  <p>However, the OnPreferenceChangeListener is not called when the preference value changed. I verified that the value did change.</p>
  
  <p>Am I doing it wrong?</p>
  
  <p>Here is the SettingsFragment</p>
  
  <pre><code>// Configure setting start date
      Preference startDatePref = findPreference(getString(R.string.pref_start_date));
      startDatePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
  
          @Override
          public boolean onPreferenceClick(Preference preference) {
              DialogFragment startFragment = DatePickerFragment.newInstance(DatePickerFragment.PICK_START);
              startFragment.show(((AppCompatActivity) getActivity()).getSupportFragmentManager(), "Pick Start Date of Semester");
              return true;
          }
      });
      // Update the summary when date is picked
      startDatePref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
          @Override
          public boolean onPreferenceChange(Preference preference, Object newValue) {
              preference.setSummary(newValue.toString());
              Log.d("pref change", "called!");
              return true;
          }
      });
  </code></pre>
  
  <p>DatePicker</p>
  
  <pre><code>public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
      SharedPreferences pref = getActivity().getSharedPreferences(
              getActivity().getString(R.string.date_info_file), Activity.MODE_PRIVATE);
      SharedPreferences.Editor editor = pref.edit();
      if (mType == PICK_START) {
          editor.putInt(getString(R.string.start_date_year), year);
          editor.putInt(getString(R.string.start_date_month), monthOfYear);
          editor.putInt(getString(R.string.start_date_day), dayOfMonth);
          UniData.setDataStatus(getActivity(), UniData.START_DATE, true);
  
          // Change the preference used in preferences.xml so that the onChange listener will be called
          SharedPreferences defaultPref = PreferenceManager.getDefaultSharedPreferences(getContext());
          SharedPreferences.Editor editDefault = defaultPref.edit();
          editDefault.putString(getString(R.string.pref_start_date), year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
          editDefault.commit();
  
          Log.d(LOG_TAG, "Start Picked: " + year + " " + monthOfYear + " " + dayOfMonth);
      }
      ... 
      editor.commit();
  </code></pre>
  
  <p>preferences.xml</p>
  
  <pre><code>&lt;PreferenceCategory
      android:key="pref_key_schedule_settings"
      android:title="Schedule"&gt;
      &lt;Preference
          android:defaultValue=""
          android:key="pref_start_date"
          android:summary="For the app to determine odd and even week."
          android:title="Set start date of semester"/&gt;
  &lt;/PreferenceCategory&gt;
  </code></pre>