2015年2月18日水曜日

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;

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

0 件のコメント:

コメントを投稿