Les préférences de l'écran à l'aide de Sherlock ActionBar

Je suis en train de faire une application Android à l'aide de ActionBarSherlock.
Mon problème est que pour faire des préférences de l'écran. Le onBuildHeader() méthode sur la SherlockPreferenceActivity classe est jamais appelé.

C'est mon code

preference_headers.xml

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header
    android:fragment="package.fragments.MyPreferenceFragment"
    android:icon="@drawable/bulle"
    android:summary="An example of some preferences."
    android:title="title" />

</preference-headers>

preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/options" >

    <PreferenceCategory>
        <SwitchPreference
            android:id="@+id/cb_notif"
            android:defaultValue="false"
            android:key="com.vincent.HTC_Dev.pref.notif"
            android:summaryOff="@string/notifications_off"
            android:summaryOn="@string/notifications_on"
            android:title="@string/notifications" />
    </PreferenceCategory>

</PreferenceScreen>

MyPreferenceActivity

public class MyPreferenceActivity extends SherlockPreferenceActivity {


    @Override
    public void onBuildHeaders(List<Header> target) {
        super.onBuildHeaders(target);

        loadHeadersFromResource(R.xml.preference_headers, target);
    }

}

MyPreferenceFragment

public class MyPreferenceFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {

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

        addPreferencesFromResource(R.xml.preferences);
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
            String key) {
        //TODO Auto-generated method stub

    }


}
  • onBuildHeaders() sera appelée uniquement si vous êtes en cours d'exécution sur l'API de Niveau 11 ou plus. Voir github.com/commonsguy/cw-omnibus/tree/master/Prefs/FragmentsBC pour un exemple de soutien PreferenceFragment sur l'API de Niveau 11+ et classique préférences sur les anciennes versions d'Android.