it-swarm.com.de

Die Methode 'getSupportFragmentManager ()' kann in Fragment nicht aufgelöst werden

Ich habe die Nachricht gefunden Die Methode 'getSupportFragmentManager ()' .__ kann nicht aufgelöst werden. Ich möchte als Aktivität fragmentieren.

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

Innerhalb einer Fragment-Unterklasse müssen Sie getFragmentManager anstelle von getSupportFragmentManager verwenden. Sie erhalten den Support-Support, wenn der Import aus der Support-Bibliothek erfolgt.

63
Blackbelt

Für meinen Fall habe ich sichergestellt, dass Fragment Klasse aus importiert wird 

Android.support.v4.app.Fragment

Nicht von 

Android.app.Fragment

Dann habe ich gebraucht 

getActivity (). getSupportFragmentManager ();

Und jetzt funktioniert es. Wenn ich die Aktivitätsinstanz benutze, die ich in onAttach () bekommen habe, funktioniert das auch nicht.

43
Md Sufi Khan

Erweitert FragmentActivity anstelle von Activity

30
Vicky

Ersetzen Sie getSupportFragmentManager ()durchgetFragmentManager (), Wenn Sie in api 21. Arbeiten.ODER Wenn Ihre App Versionen von Android älter als 3.0 unterstützt, stellen Sie sicher, dass Sie Ihr Android-Projekt mit der Support-Bibliothek eingerichtet haben, wie in Ein Projekt für die Verwendung einer Bibliothek einrichten beschrieben, und verwenden Sie getSupportFragmentManager () diesmal. 

12
Aman

Verwenden Sie getActivity().getSupportFragmentManager()

12
Gabriel Wamunyu

Sie können auch AppCompatActivity anstelle von Activity verwenden.
Dann funktioniert getSupportFragmentManager().
Vergessen Sie auch nicht, dass Ihr App-Theme in diesem Fall das AppCompat-Theme erweitert

6
Leo Droidcoder

Gemäß der Dokumentation ist getSupportFragmentManager () nur in der AppCompatActivity-Klasse vorhanden. Es ist nicht in der Aktivitätsklasse vorhanden. Stellen Sie daher sicher, dass Ihre Klasse die AppCompatActivity-Klasse erweitert.

public class MainActivity extends AppCompatActivity {
}
5
Siddarth Kanted

getFragmentManager ()

versuchen Sie es einfach mit diesem. Es hat für meinen Fall funktioniert

3
Venkat Vinay

du solltest benutzen 

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

Ich habe auch diese Probleme, aber nach dem Hinzufügen von getActivity() vor getSupportFragmentManager behoben.

2
Sazid Ali

getSupportFragmentManager() ist nicht Teil von Fragment, daher können Sie es hier nicht erhalten. Sie können es von Parent Activity (also frühestens in onAttach()) mit normal erhalten

activity.getSupportFragmentManager();

oder Sie können versuchen, getChildFragmentManager () zu verwenden, das sich im Fragment-Bereich befindet, aber API17 + erfordert

2
Marcin Orlowski

Wenn Sie erhalten, dass die Methode getSupportFragmentManager () nicht aufgelöst werden kann, versuchen Sie es mit

this.getSupportFragmentManager()

Es funktioniert für mich beim Umgang mit DialogFragments in Android

1
Jay Lin

Wenn Sie eine Android.support.v4.app.Fragment-Klasse instanziieren, müssen Sie getActivity().getSupportFragmentManager() aufrufen, um das Problem der nicht lösbaren Lösung zu beseitigen. Die offiziellen Android-Dokumente zu Fragment von Google neigen jedoch dazu, dieses einfache Problem zu übersehen, und sie dokumentieren es immer noch ohne das Präfix getActivity().

1

Ich habe alles oben versucht, aber keiner funktioniert

Endlich versuchte ich das meine

getBaseActivity().getFragmentManager()

und arbeitet .. :)

Für mich habe ich sichergestellt, dass v4 folgendermaßen importiert wird:

import Android.support.v4.app.DialogFragment;

Dann verwendet:

getActivity().getFragmentManager()
0
Marc Alexander