Comment puis-je appeler un PreferenceFragment spécifique à partir d'une PreferenceActivity?

J'ai un PreferenceActivity avec plusieurs fragments:

R. xml.préférences: (raccourcie pour une meilleure lisibilité):

<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header android:fragment="fragments.Fragment1" android:id="@+id/fragment1" [...] />
    <header android:fragment="fragments.Fragment2" android:id="@+id/fragment2" [...] />
    [...]
</preference-headers>

SettingsActivity:

public class SettingsActivity extends PreferenceActivity {
    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.preferences, target);
    }
}

Cela fera apparaître une liste d'entrée avec fragments.Fragment1fragments.Fragment2... si SettingsActivity est commencé.

Mais maintenant je veux passer un Faisceau de tel qu'une PreferenceFragment est ouvert lors du démarrage de l'activité:

j'ai donc ajouté ceci à SettingsActivity:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null && savedInstanceState.getBoolean("shortcut")) {
        //directly jump to fragments.Fragment1
    }
}

J'ai essayé de charger le fragment via getFragmentManager().findFragmentById(R.id.fragment1)mais cela renvoie null. Mais même si j'avais le bon exemple, je ne sais pas comment l'appeler. Aussi, l'appel de loadHeadersFromResource(R.xml.preferences_fragment1, target); ne fonctionne pas - Ce qui va lancer une RuntimeException "document XML doit commencer par la balise; foundPreferenceScreen Binaire fichier XML". Je n'ai pas d'idées à gauche et aussi une recherche sur soi et Google n'a pas renvoyé de résultat pertinent.

Donc ma question est: Est-il possible de charger directement une PreferenceFragment (par exemple, des fragments.Fragment1) de l'Activité de la méthode onCreate? Si oui, comment?

source d'informationauteur Michael Osl