Nu se poate rezolva metoda „getSupportFragmentManager ( )” în Fragment (Programare, Android, Google Maps, Fragmente Android, Fragment)

Irwans a intrebat.

Am găsit mesajul Cannot resolve method ‘getSupportFragmentManager ( )’Vreau să fragmentez ca activitate.pentru că vreau să folosesc Maps pe tabs swipe.

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();

Comentarii

  • Harta este un fragment sau este un container? –  > Por Merlí Escarpenter Pérez.
  • Possible duplicate of Cum pot accesa getSupportFragmentManager() într-un fragment? –  > Por blahdiblah.
  • aici este explicat corect youtube.com/watch?v=JWk3PXV6O98 –  > Por Samrat Das.
14 răspunsuri
Centura neagră

În interiorul unui Fragment subclasa trebuie să utilizați getFragmentManager în loc de getSupportFragmentManager. Îl veți obține pe cel de suport dacă importurile sunt din biblioteca de suport.

Comentarii

  • ce înseamnă, dar tot nu funcționează ? –  > Por Blackbelt.
  • de asemenea, trebuie să schimbați în fragmrnt xml, de la: android_name=”com.google.android.gms.maps.SupportMapFragment” la android_name=”com.google.android.gms.maps.MapFragment” –  > Por Rahul Sharma.
  • Luați în considerare utilizarea getChildFragmentManager() în interiorul unui fragment în loc de getFragmentManager() sau getSupportFragmentManager(). –  > Por ngaspama.
Md Sufi Khan

Pentru cazul meu, m-am asigurat că Fragment clasa este importată din

android.support.v4.app.Fragment

Nu din

android.app.Fragment

Apoi am folosit

getActivity().getSupportFragmentManager();

Și acum funcționează. Dacă folosesc o instanță de activitate pe care am obținut-o în onAttach(), nu funcționează nici ea.

Comentarii

  • Aceasta este o notă importantă: trebuie să adăugați suportul android v4 pentru a funcționa. –  > Por Machado.
Vicky

Extinde FragmentActivity în loc de Activitate

Comentarii

  • După cum puteți vedea, autorul subiectului a întrebat despre Fragment problema, nu Activity una. –  > Por Andrey Kopeyko.
  • Mi-ai salvat ziua. Vă mulțumesc foarte mult 🙂 –  > Por Francisco Romero.
  • Oops! nu ați răspuns direct la întrebarea celui care a întrebat, ci la a mea! ați rezolvat-o. Vă mulțumesc +1 – –  > Por inverted_index.
  • puteți utiliza și AppCompatActivity –  > Por Kyo Huu.
  • Mulțumesc! Este de lucru. Clasa mea a fost moștenită de la FragmentActivity și compilarea s-a încheiat bine. –  > Por Orlov Const.
Gabriel Wamunyu

Utilizați getActivity().getSupportFragmentManager()

Aman

Înlocuiți getSupportFragmentManager() cu getFragmentManager()dacă lucrați în api 21. SAUDacă aplicația dvs. acceptă versiuni de Android mai vechi de 3.0, asigurați-vă că v-ați configurat proiectul Android cu biblioteca de suport, așa cum este descris în Configurarea unui proiect pentru a utiliza o bibliotecă și utilizați getSupportFragmentManager() de data aceasta.

Comentarii

  • Bine ați venit pe StackOverflow. Poate că doriți să citiți ajutorul nostru de editare pentru a vă îmbunătăți formatarea postărilor (în special secțiunea privind intervalele de cod). –  > Por user1438038.
Leo Droidcoder

De asemenea, puteți utiliza AppCompatActivity în loc de Activity.
Apoi getSupportFragmentManager() va funcționa.
Și, de asemenea, nu uitați să faceți ca tema App să extindă tema AppCompat în acest caz

Siddarth Kanted

Conform documentației, getSupportFragmentManager() este prezent doar în clasa AppCompatActivity. Nu este prezent în clasa Activity. Deci, asigurați-vă că clasa dvs. extinde clasa AppCompatActivity.

public class MainActivity extends AppCompatActivity {
}

Marcin Orlowski

getSupportFragmentManager() nu face parte din Fragment, , așa că nu îl puteți obține aici în acest mod. Îl puteți obține de la părintele Activity (deci în onAttach() cel mai devreme) folosind procedura normală

activity.getSupportFragmentManager();

sau puteți încerca getChildFragmentManager(), , care se află în domeniul de aplicare al Fragmentului, dar necesită API17+.

Venkat Vinay

getFragmentManager()

încercați acest lucru. a funcționat în cazul meu

Sazid Ali

ar trebui să utilizați

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

Am avut și eu această problemă, dar am rezolvat-o după ce am adăugat getActivity() înainte de getSupportFragmentManager.

Jay Lin

Dacă primiți „Cannot resolve method getSupportFragmentManager()”, încercați să utilizați

this.getSupportFragmentManager()

Funcționează pentru mine atunci când am de-a face cu DialogFragments în android

Vijay Kumar Kanta

Dacă instanți un android.support.v4.app.Fragment clasă, trebuie să apelați getActivity().getSupportFragmentManager() pentru a scăpa de problema „cannot-resolve”. Cu toate acestea, documentația oficială Android privind Fragmentul de către Google tinde să treacă cu vederea această problemă simplă și încă o documentează fără getActivity() prefix.

Krishan Kumar Mourya

Am încercat toate cele de mai sus, dar niciunul nu funcționează

În cele din urmă a încercat acest lucru propria mea

getBaseActivity().getFragmentManager()

și este de lucru .. 🙂

Marc Alexander

Pentru mine m-am asigurat că am importat v4 astfel:

import android.support.v4.app.DialogFragment;

Apoi a folosit:

getActivity().getFragmentManager()