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;
に変更すれば解決します。
例えば、以下のようなソースでエラーとなる場合があります。
[ソース]
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;
に変更すれば解決します。
コメント
コメントを投稿