Ответ 1
Ваша деятельность не расширяет FragmentActivity из библиотеки поддержки, поэтому этот метод отсутствует в суперклассе
Если вы нацеливаете api 11 или выше, вы можете вместо этого использовать Activity.getFragmentManager.
У меня есть активность, которая имеет фрагмент.
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" />
И я хочу вызвать метод из ResultFragment из метода в Activity, но getSupportFragmentManager "не существует":
FragmentManager fragMan = getSupportFragmentManager();
Как я могу это решить?
Ваша деятельность не расширяет FragmentActivity из библиотеки поддержки, поэтому этот метод отсутствует в суперклассе
Если вы нацеливаете api 11 или выше, вы можете вместо этого использовать Activity.getFragmentManager.
расширить класс до AppCompatActivity вместо Activity
получить текущую активность от родителя, а затем использовать этот код
getActivity().getSupportFragmentManager()
import
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
Просто используйте
FragmentManager fm = getActivity().getSupportFragmentManager();
Помните, что всегда при доступе к разрыву фрагмента в приложении MainLayout
Кастинг или getActivity()
.
расширение FragementAvtivity вместо активности
Это сработало для меня. Запуск API Android 19 и выше.
FragmentManager fragMan = getFragmentManager();
getCurrentActivity().getFragmentManager()
Если вы пишете код, какая доза не существует в контексте фрагмента (Activity), предположите адаптер, то вы можете преобразовать свой Контекст в адаптер в ActivityFragment, например:
FragmentActivity activity = (FragmentActivity) mContext; FragmentManager manager = activity.getSupportFragmentManager();
Я использовал FragmentActivity TabAdapter = новый TabPagerAdapter (((FragmentActivity) getActivity()). GetSupportFragmentManager());