Не удается разрешить метод getSupportFragmentManager() внутри фрагмента

Я нашел сообщение Не удается разрешить метод getSupportFragmentManager() Я хочу фрагментировать как активность. потому что я хочу использовать Карты во время прокрутки вкладки.

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();

Ответ 1

Внутри подкласса Fragment вы должны использовать getFragmentManager вместо getSupportFragmentManager. Вы получите поддержку, если импорт из библиотеки поддержки.

Ответ 2

В моем случае, Я убедился, что класс Фрагмент импортируется из

android.support.v4.app.Fragment

Не от

android.app.Fragment

Затем я использовал

getActivity() getSupportFragmentManager();.

И теперь его работа. Если я использую экземпляр активности, который я получил в onAttach(), также не работает.

Ответ 3

Расширяет FragmentActivity вместо Активность

Ответ 4

Замените getSupportFragmentManager() на getFragmentManager() если вы работаете в API 21.   ИЛИ Если ваше приложение поддерживает версии Android старше 3.0, убедитесь, что вы настроили свой проект Android с помощью библиотеки поддержки, как описано в разделе Настройка проекта для использования библиотеки, и на этот раз используйте getSupportFragmentManager().

Ответ 5

Используйте getActivity().getSupportFragmentManager()

Ответ 6

Также вы можете использовать AppCompatActivity вместо Activity.
Тогда getSupportFragmentManager() будет работать.
А также не забывайте, что ваша тема приложения расширяет тему AppCompat в этом случае

Ответ 7

В соответствии с документацией getSupportFragmentManager() присутствует только внутри класса AppCompatActivity. Его нет в классе Activity. Поэтому убедитесь, что ваш класс расширяет класс AppCompatActivity.

public class MainActivity extends AppCompatActivity {
}

Ответ 8

getFragmentManager()

просто попробуйте this.it работал для моего случая

Ответ 9

getSupportFragmentManager() не является частью Fragment, поэтому вы не можете получить его здесь таким образом. Вы можете получить его от родителя Activity (так что в onAttach() как можно раньше), используя обычный

activity.getSupportFragmentManager();

или вы можете попробовать getChildFragmentManager(), который находится в области Fragment, но требует API17 +

Ответ 10

вы должны использовать

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

У меня также есть эти проблемы, но они решены после добавления getActivity() до getSupportFragmentManager.

Ответ 11

Если вы получаете "Не удается разрешить метод getSupportFragmentManager()", попробуйте использовать

this.getSupportFragmentManager()

Он работает для меня при работе с DialogFragments в android

Ответ 12

Если вы создаете экземпляр класса android.support.v4.app.Fragment, вам нужно вызвать getActivity().getSupportFragmentManager(), чтобы избавиться от проблемы, которую невозможно решить. Однако официальные документы Android по Fragment от Google имеют тенденцию игнорировать эту простую проблему, и они по-прежнему документируют ее без префикса getActivity().

Ответ 13

Я пробовал все выше, но никто не работал

Наконец, попробовал это мой собственный

getBaseActivity().getFragmentManager()

и работает..:)

Ответ 14

Для меня я уверен, что импортировать v4, как это:

import android.support.v4.app.DialogFragment;

Затем использовал:

getActivity().getFragmentManager()