Je vois dans le guide de développement des fragments Android qu'une "activité peut appeler des méthodes dans un fragment en acquérant une référence au fragment à partir de FragmentManager, en utilisant findFragmentById()
ou findFragmentByTag()
".
L'exemple qui suit montre comment obtenir une référence de fragment, mais pas comment appeler des méthodes spécifiques dans le fragment.
Quelqu'un peut-il donner un exemple de la façon de procéder? Je voudrais appeler une méthode spécifique dans un fragment de l'activité parent. Merci.
Si vous utilisez "import android.app.Fragment;" Ensuite, utilisez soit:
1)
Où R.id.example_fragment est probablement l'identifiant FrameLayout dans votre mise en page XML. OU
2)
Où FragTagName est le nom que vous avez spécifié lorsque vous l'avez fait:
Si vous utilisez "import android.support.v4.app.Fragment;" Ensuite, utilisez soit:
1)
OU
2)
la source
Si vous utilisez une bibliothèque de support, vous voudrez faire quelque chose comme ceci:
la source
((FragmentName) getFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
2. Si vous utilisez un fragment de bibliothèque de support, procédez comme suit:
((FragmentName) getSupportFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
la source
Je pense que le mieux est de vérifier si le fragment est ajouté avant d'appeler la méthode dans fragment. Faites quelque chose comme ceci pour éviter une exception nulle.
la source
Du fragment à l'activité:
De l'activité au fragment:
FragmentManager fm = getSupportFragmentManager ();
Si vous avez ajouté un fragment via du code et utilisé une chaîne de balise lorsque vous avez ajouté votre fragment, utilisez à la place findFragmentByTag :
la source
D' abord , vous créez dans votre méthode
fragment
commedans votre
activity
vous ajoutez ceciadd
onCreate()
méthodeenfin appeler la méthode à laquelle vous voulez appeler ajoutez ceci
essayez ce code
la source
la source
Je ne sais pas
Java
, mais dansC#
(Xamarin.Android), il n'est pas nécessaire de rechercher le fragment à chaque fois que vous devez appeler la méthode, voir ci-dessous:Je pense que
Java
vous pouvez faire de même.la source
vous appelez également la méthode fragment en utilisant une interface comme
vous créez d'abord l'interface
après avoir créé l'interface, vous implémentez l'interface dans votre fragment
et vous créez la référence d'interface dans votre activité
la source
la source