android.app.Fragmentとandroid.support.v4.app.Fragmentの共存で起こるエラー

今回は、android.app.Fragmentとandroid.support.v4.app.Fragmentの共存で起こるエラーについてです。
例えば、以下のようなソースでエラーとなる場合があります。

[ソース]
public void onNavigationDrawerItemSelected(int position) {

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
   .replace(R.id.container, MyFragment.newInstance(position))
   .commit();
 
}

[エラー]
replace(int, android.support.v4.app.Fragment) in FragmentTransaction cannot be applied to (int, XXX.MyFragment)

これは、getSupportFragmentManager()で取得したFragmentManagerのreplace()メソッドに於いて、android.app.FragmentによるMyFragmentクラスのインスタンスを引数にとることは出来ないというエラーです。

対策として、
この場合、MyFragmentクラスに於けるインポートを

import android.app.Fragment;

から

import android.support.v4.app.Fragment;

に変更すれば解決します。

コメント

このブログの人気の投稿

プロキシ設定 Android Studio

Android SDK アップデート後のエラー対応

FragmentとActivityの連携について