private void bindPreferences() {
   final PreferenceScreen preferenceScreen = getPreferenceScreen();
   if (preferenceScreen != null) {
     preferenceScreen.bind(getListView());
     if (mSavedInstanceState != null) {
       super.onRestoreInstanceState(mSavedInstanceState);
       mSavedInstanceState = null;
     }
   }
 }
  @Override
  protected void onRestoreInstanceState(Bundle state) {
    if (mPreferenceManager != null) {
      Bundle container = state.getBundle(PREFERENCES_TAG);
      if (container != null) {
        final PreferenceScreen preferenceScreen = getPreferenceScreen();
        if (preferenceScreen != null) {
          preferenceScreen.restoreHierarchyState(container);
          mSavedInstanceState = state;
          return;
        }
      }
    }

    // Only call this if we didn't save the instance state for later.
    // If we did save it, it will be restored when we bind the adapter.
    super.onRestoreInstanceState(state);
  }