Не удается вызвать getSupportFragmentManager() из действия
у меня есть деятельность, которая имеет фрагмент.
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();
Как я могу решить это?
10 ответов:
ваша деятельность не распространяется FragmentActivity из библиотеки поддержки, поэтому метод не присутствует в суперклассе
Если вы ориентируетесь на api 11 или выше, вы можете использовать активности.getFragmentManager вместо.
получить текущую активность от родителя, а затем с помощью этого кода
getActivity().getSupportFragmentManager()
импорт
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager;
Просто Использовать
FragmentManager fm = getActivity().getSupportFragmentManager();
помните всегда при доступе к фрагменту раздувания в MainLayout использования Кастинг или
getActivity()
.
это сработало для меня. Работает Android API 19 и выше.
FragmentManager fragMan = getFragmentManager();
Если вы пишете код, доза которого не существует в контексте фрагмента (активности), предположим, что адаптер, затем вы можете преобразовать свой контекст в адаптере в ActivityFragment, например:
FragmentActivity activity = (FragmentActivity) mContext; FragmentManager manager = activity.getSupportFragmentManager();