2014-10-21 4 views
2

У меня странная проблема в Android. Я использую Fragment s и FragmentActivity с пакетов android.support.v4.app. Однако, похоже, что FragmentActivity.getFragmentManager() возвращает объект типа android.app.FragmentManager вместо android.support.v4.app.FragmentManager. Первый несовместим с фрагментами v4, что вызывает у меня проблемы с чем-либо вообще. Например, следующий код дает тип несовпадения:Android: ошибка версии FragmentManager

// "this" is a FragmentActivity, "frag" is a Fragment -- both from the v4 packages 
FragmentManager fm = this.getFragmentManager(); 
fm.beginTransaction() 
    .replace(R.id.content_frame, frag) 
    .commit(); 

Это возвращает рассогласования исключения типа, так как метод replace() не принимает v4 фрагмента в качестве аргумента.

Любые мысли о том, как решить эту странную проблему?

ответ

4

Используй это:

this.getSupportFragmentManager(); 

вместо:

this.getFragmentManager(); 

Надеется, что это помогает

+0

Это сделал трюк, спасибо! –

+0

Добро пожаловать! – zozelfelfo

0

FragmentActivity от support.v4 баночки поэтому в случае FragmentActivity вам придется выбрать supportFragmentManager и в случае Activity вы можете напрямую получить FragmentManager с транзакцией фрагмента.

Благодаря Анкур

Смежные вопросы