2014-10-21 3 views
2

Android에서 이상한 점이 있습니다. android.support.v4.app 패키지의 FragmentFragmentActivity을 사용하고 있습니다. 그러나 FragmentActivity.getFragmentManager()android.support.v4.app.FragmentManager 대신 android.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(); 

는 당신이 supportFragmentManager을 선택해야합니다 FragmentActivity의 경우 있도록

+0

감사합니다. –

+0

당신을 진심으로 환영합니다! – zozelfelfo

0

FragmentActivity가 support.v4 항아리입니다 도움이되기를 바랍니다 및 액티비티의 경우 조각 트랜잭션을 사용하여 FragmentManager를 직접 가져올 수 있습니다.

감사합니다. Ankur