Библиотека поддержки 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 (который, надеюсь, вы также включили в свой проект)