0

Je ne sais pas très bien comment Preference.setSummary() est supposé fonctionner. Cette méthode est-elle supposée mettre à jour le résumé d'un élément de menu dans un fragment de préférence de manière non volatile? En d'autres termes, le résumé affiché est-il supposé persister après la fermeture et la réouverture du fragment de menu de préférences?Récapitulatif des préférences Android dans le menu Préférence Non persistant

Je pensais que c'était supposé fonctionner de la sorte, mais chaque fois que j'appuie sur le bouton de retour et que j'ouvre à nouveau le menu des préférences, les résumés sont de nouveau vides.

public class FragmentSettingsMenu extends com.takisoft.fix.support.v7.preference.PreferenceFragmentCompat { 
private SharedPreferences.OnSharedPreferenceChangeListener listener; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Load the preferences from the XML resource 
    addPreferencesFromResource(R.xml.preferences); 
    listener = new SharedPreferences.OnSharedPreferenceChangeListener() { 
     public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { 
      if (key.equals("pref_wood")) { 
       Preference woodPref = findPreference(key); 
       String color = woodPref.getSharedPreferences().getString(key, "Maple"); 
       MainActivity.getGLSurfaceView().setTexture(color); 
       woodPref.setSummary(color);               // Set summary to be the user-description for the selected value 
      } 
     } 
    }; 
} 
} 

Répondre

1

Cette méthode est censée mettre à jour le résumé d'un élément de menu dans un fragment de préférence d'une manière non volatile?

No.

En d'autres termes, est le résumé affiché censé persister après la fermeture et la réouverture du fragment de menu préférence?

No.

+0

Avez-vous un lien vers une explication pour parvenir à la persistance de résumés? – Cody

+1

@Cody: Vous ne persistez pas dans les résumés. Vous persistez les données qui vous permettent de générer les résumés. Donc, dans ce cas, vous devez parcourir votre logique set-the-summary après 'addPreferencesFromResource()' en plus de la modification de la préférence. – CommonsWare