Библиотека поддержки ListFragment GetSupportFragmentManager undefined

У меня есть список Fragment (импортирование библиотеки поддержки v4, цель сборки - 2.3.3 api 11) и следующая проблема в моем коде, который отлично работал, когда цель была 3.0, и я не использовал библиотеку.

Fragment frag1 = new ExampleFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.contentframe, frag1);
ft.commit();

Теперь я получаю ошибку компиляции, которая

"Type mismatch: cannot convert from ExampleFragment to Fragment"

и он говорит мне изменить "Фрагмент" на ExampleFragment (например.)

ExamplesFragment frag1 = new ExamplesFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.contentframe, frag1);
ft.commit();

Тогда у меня есть проблема, что команда ft.replace имеет ошибку:

The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, Fragment_PVAnn)

и он говорит мне изменить ExampleFragment в первой строке обратно только на фрагмент, и круг круглый и вокруг

Ответ 1

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

getActivity().getSupportFragmentManager()

Если это все еще вызывает проблемы, тогда убедитесь, что ваш Activity extends FragmentActivity.

Если это все еще вызывает проблемы,

  • Удалите весь ваш импорт,
  • Повторно импортируйте с помощью Ctrl + Shift + O и
  • При каждом столкновении имен убедитесь, что вы импортируете из support.v4.*, а не android.*.

Ответ 2

Вы должны убедиться, что при расширении Fragment, который вы расширяете Fragment, который находится в пространстве пакета v4. Проверьте свой импорт на Fragment, FragmentActivity и т.д., И если вы видите, что они импортировали WITHOUT.v4 в имя пакета, то это неверно.

Кроме того, если вы установите для библиотеки андроида для проекта 2,3, а не 4.0.x, то вы быстро увидите, используете ли вы неправильные классы, потому что вы получите ошибки компиляции, которые могут быть исправлены с помощью классы v4 из бара поддержки Android (который, надеюсь, вы также включили в свой проект)