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.Fragment1
fragments.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
Vous devez vous connecter pour publier un commentaire.
Selon:
http://developer.android.com/reference/android/preference/PreferenceActivity.html#EXTRA_SHOW_FRAGMENT
Suffit d'utiliser code ci-dessous dans votre PreferenceActivity et PreferenceFragment dans onCreate