활동에서 getSupportFragmentManager ()를 호출 할 수 없습니다.


79

조각이있는 활동이 있습니다.

XML :

 <fragment android:name="com.example.androidcalculator.ResultFragment"
            android:id="@+id/result_fragment"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

그리고 Activity의 메서드에서 ResultFragment의 메서드를 호출하고 싶지만 getSupportFragmentManager "존재하지 않음":

FragmentManager fragMan = getSupportFragmentManager();

어떻게 해결할 수 있습니까?

답변:


189

활동이 지원 라이브러리에서 FragmentActivity 를 확장하지 않으므로 메서드가 슈퍼 클래스에 없습니다.

API 11 이상을 대상으로하는 경우 대신 Activity.getFragmentManager 를 사용할 수 있습니다 .


11
FragmentManager현재 사용되지 않습니다.
CoolMind

완전히 사실은 아니지만 AndroidX FragmentManager를 사용해야합니다.
ueen

1
나는 AppcompactActivity가 아닌 ComponentActivity를 사용하고 있으며 componentActivity에서 getsupportManger ()는 anyiIdea 오류를 제공합니다
Sunil Chaudhary


18

부모로부터 현재 활동을 얻은 다음이 코드를 사용하여

getActivity().getSupportFragmentManager()

FragmentManager fragMan = getFragmentManager ();
MrPickles7 2015

4

수입

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;

20
여기서 가져 오기만으로는 충분하지 않습니다 FragmentActivity. 상속해야합니다 .
Alexander Farber 2014 년

4

간단히 사용

 FragmentManager fm = getActivity().getSupportFragmentManager();

MainLayout에서 조각 확장에 액세스 할 때 항상 Casting 또는 getActivity().



2

이것은 나를 위해 일했습니다. Android API 19 이상 실행.

FragmentManager fragMan = getFragmentManager();


0

대신에

extends Fragment

사용하다

extends android.support.v4.app.Fragment 

이것은 나를 위해 작동합니다. * API14 이상


-1

나는 사용했다 FragmentActivity

TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.