J'ai un supportMapFragment initié à l'intérieur d'un fragment.Les fragments doivent être statiques de telle sorte qu'ils puissent être ré-instanciés par le système, et les classes anonymes ne sont pas statiques
Voici comment je l'ai créé.
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
mapFragment = new SupportMapFragment()
{
@Override
public void onActivity(Bundle bundle)
{
super.onActivity(bundle);
mapFragment.getMapAsync(HomeFragment.this);
}
};
getChildFragmentManager().beginTransaction().replace(R.layout.container, mapFragment).commit();
}
Mon problème est que chaque fois que je crée une construction, la création échoue en disant que « Des fragments doivent être statiques tels qu'ils peuvent être réutilisés instanciées par le système, et les classes anonymes ne sont pas statiques »
J'ai essayé de placer la variable à statique mais il obtient toujours l'erreur.
Aidez-nous s'il vous plaît.
Le _class_ doit être statique. Quand vous faites 'new SupportMapFragment() {...}', c'est une classe anonyme, qui n'est pas statique. –
Comment dois-je faire? Je veux dire, il y a une raison pour laquelle j'ai instancié le fragment dans la classe, donc je ne peux pas utiliser la méthode findFragmentById de l'utilisateur. – MetaSnarf
Vous n'avez pas à l'inclure dans votre mise en page dans un élément '', et 'findFragmentById()' dans cet élément. Vous avez juste besoin de créer une sous-classe concrète et de créer une instance de celle-ci avant de la traiter. –