web-dev-qa-db-fra.com

Impossible de résoudre la méthode 'getSupportFragmentManager ()' dans Fragment

J'ai trouvé le message Impossible de résoudre la méthode 'getSupportFragmentManager ()' Je souhaite fragmenter en tant qu'activité ..__ parce que je souhaite utiliser Cartes sur le balayage des onglets.

public class PETAcikarangsukatani extends Fragment {
Context context;

private static final LatLng SUKATANI = new LatLng(-6.171327, 107.178108);
private static final LatLng WRPOJOK = new LatLng(-6.222411, 107.162158);
private static final LatLng PILAR = new LatLng(-6.257033, 107.156472);
private static final LatLng CIKARANG = new LatLng(-6.256073, 107.143984);


GoogleMap googleMap;
final String TAG = "PathGoogleMapActivity";

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.activity_path_google_map, container, false);
    context = rootView.getContext();

    SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager()
            .findFragmentById(R.id.map);
    googleMap = fm.getMap();
40
Irwans

Dans une sous-classe Fragment, vous devez utiliser getFragmentManager au lieu de getSupportFragmentManager. Vous obtiendrez le support si l’importation provient de la bibliothèque de support.

63
Blackbelt

Pour mon cas, je me suis assuré que Fragment class est importé de 

Android.support.v4.app.Fragment

Pas de 

Android.app.Fragment

Puis j'ai utilisé 

getActivity (). getSupportFragmentManager ();

Et maintenant ça marche. Si j'utilise l'instance d'activité que j'ai obtenue, onAttach () ne fonctionne pas non plus.

43
Md Sufi Khan

Étend FragmentActivity au lieu de Activity

30
Vicky

Remplacez getSupportFragmentManager ()pargetFragmentManager () Si vous travaillez dans api 21. OU Si votre application prend en charge les versions d'Android antérieures à la version 3.0, assurez-vous que vous avez configuré votre projet Android avec la bibliothèque de support, comme décrit dans Configuration d'un projet pour utiliser une bibliothèque et utilisez getSupportFragmentManager () cette fois. 

12
Aman

Utilisez getActivity().getSupportFragmentManager()

12
Gabriel Wamunyu

Aussi, vous pouvez utiliser AppCompatActivity au lieu de Activity.
Alors getSupportFragmentManager() fonctionnera.
Et n'oubliez pas de faire en sorte que le thème de votre application étende le thème de AppCompat dans ce cas

6
Leo Droidcoder

Selon la documentation, getSupportFragmentManager () est présent uniquement dans la classe AppCompatActivity. Il n'est pas présent dans la classe d'activité. Assurez-vous donc que votre classe étend la classe AppCompatActivity.

public class MainActivity extends AppCompatActivity {
}
5
Siddarth Kanted

getFragmentManager ()

essayez juste this.it a fonctionné pour mon cas

3
Venkat Vinay

tu devrais utiliser 

getActivity.getSupportFragmentManager() like
//in my fragment 
SupportMapFragment fm = (SupportMapFragment)    
getActivity().getSupportFragmentManager().findFragmentById(R.id.map);

J'ai également ces problèmes, mais résolus après avoir ajouté getActivity() avant getSupportFragmentManager.

2
Sazid Ali

getSupportFragmentManager() ne fait pas partie de Fragment, vous ne pouvez donc pas l'obtenir de cette façon. Vous pouvez l’obtenir du parent Activity (donc dans onAttach() le plus tôt) en utilisant normal

activity.getSupportFragmentManager();

ou vous pouvez essayer getChildFragmentManager () , qui est dans la portée de Fragment, mais requiert API17 +

2
Marcin Orlowski

Si vous obtenez "Impossible de résoudre la méthode getSupportFragmentManager ()", essayez d'utiliser

this.getSupportFragmentManager()

Cela fonctionne pour moi lorsque je traite avec DialogFragments dans Android

1
Jay Lin

Si vous instanciez une classe Android.support.v4.app.Fragment, vous devez appeler getActivity().getSupportFragmentManager() pour résoudre le problème de résolution impossible. Cependant, les documents Android officiels sur Fragment de Google ont tendance à ignorer ce problème simple et ils le documentent toujours sans le préfixe getActivity().

1
Vijay Kumar Kanta

J'ai essayé tout ce qui précède, mais aucun ne fonctionne

Enfin essayé ceci mon propre

getBaseActivity().getFragmentManager()

et travaille .. :)

0

Pour moi, j'ai veillé à importer la v4 comme ceci:

import Android.support.v4.app.DialogFragment;

Puis utilisé:

getActivity().getFragmentManager()
0
Marc Alexander