La réponse ci-dessus peut/ne peut pas être juste mais pour la meilleure pratique toujours permettre des transactions par le Activité qui enferment le respectifsFragment.
Faire usage de interfaces, onAttach() dans votre Fragment pour donner appel à l'enfermer Activité & de l'activité, permettre une autre transaction activité/fragment.
Un exemple de code ressemblerait à ceci:
public class MyFragmentExample extends Fragment{
//Creating instance of Interface
AnyInterfaceName anyInterfaceName;
/*
This onAttach is responsible for attaching the interface
listener of fragment to Activity
*/
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
anyInterfaceName = (AnyInterfaceName) context;
} catch (ClassCastException ex) {
throw new ClassCastException(ex.getMessage() + "must implement AnyInterfaceName");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return view;
}
// Define an interface with any name
public interface AnyInterfaceName{
/*
you can give any name to this function & this
function will be implemented later in activity
*/
void startAnotherActivity();
}
}
maintenant du côté d'activité: ajoutez ce sur juste après étend l'activité/AppCompActivity
mettre en œuvre MyFragment.AnyInterfaceName
Ensuite, il suffit de mettre en œuvre la méthode & à l'intérieur de la méthode, autoriser le passage à une autre activité comme vous le faites depuis l'activité en utilisant Intention. N'oubliez pas d'appeler à l'interface dans le fragment pendant que vous voulez démarrer une autre activité. Il suffit de l'appeler comme ceci:
anyInterfaceName.startAnotherActivity();
Cela peut être un travail long à faire, mais pour la meilleure pratique, il est.
Départ du Site officiel Android Communiquer avec l'activitéhere
Hope it helps !!