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();
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.
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.
Étend FragmentActivity au lieu de Activity
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.
Utilisez getActivity().getSupportFragmentManager()
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
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 {
}
getFragmentManager ()
essayez juste this.it a fonctionné pour mon cas
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
.
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 +
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
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()
.
J'ai essayé tout ce qui précède, mais aucun ne fonctionne
Enfin essayé ceci mon propre
getBaseActivity().getFragmentManager()
et travaille .. :)
Pour moi, j'ai veillé à importer la v4 comme ceci:
import Android.support.v4.app.DialogFragment;
Puis utilisé:
getActivity().getFragmentManager()