Mam działanie, które ma fragment.
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" />
I chcę wywołać metodę z ResultFragment z metody w Activity, ale getSupportFragmentManager „nie istnieje”:
FragmentManager fragMan = getSupportFragmentManager();
Jak mogę to rozwiązać?
FragmentManager
jest teraz przestarzała.rozszerz klasę na
AppCompatActivity
zamiastActivity
źródło
pobierz bieżącą aktywność od rodzica, a następnie użyj tego kodu
getActivity().getSupportFragmentManager()
źródło
import
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager;
źródło
FragmentActivity
.Po prostu użyj
Pamiętaj zawsze, gdy uzyskujesz dostęp do wypełniania fragmentów w MainLayout, użyj Casting lub
getActivity()
.źródło
rozszerzyć
FragementAvtivity
zamiastActivity
źródło
To zadziałało dla mnie. Z systemem Android API 19 lub nowszym.
FragmentManager fragMan = getFragmentManager();
źródło
getCurrentActivity().getFragmentManager()
źródło
Zamiast
extends Fragment
posługiwać się
extends android.support.v4.app.Fragment
To działa dla mnie. dla * API14 i nowszych
źródło
użyłem
FragmentActivity
TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());
źródło