Search code examples
androidpreferenceactivitypreferencefragment

How to setSummary of a preference-headers


How can I set a summary of a preference-header on runtime? Even if I put a key in it, findPreference(key) will produce a NullPointerException.

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header android:fragment="PrefActivity$Fragment1"
            android:title="Fragment1"
            android:summary="Summary2"/>
    <header android:fragment="PrefActivity$Fragment2"
            android:title="Fragment2"
            android:summary="Summary2"/>
</preference-headers>

Thanks for your help!


Solution

  • Thanks to @CommonsWare I found a solution:

    @Override
    public void onBuildHeaders(List<Header> target) {
      loadHeadersFromResource(R.xml.preference_headers, target);
    
      for(Header header: target) {
        if (SettingsFragmentTest.class.getName().equals(header.fragment)) {
          header.summary = "New Summary!";
        }
      }
    }