我试图替换我的一个片段,但由于这些错误,我无法这样做。但是我已经有了这些进口,因此我不知道这里有什么错误。
错误1
Error:(73, 96) error: incompatible types
required: android.support.v4.app.FragmentTransaction
found: android.app.FragmentTransaction
错误2
Error:(72, 48) error: incompatible types
required: Fragment
found: FragmentMap
进口
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
片段替换代码
Fragment newFragment = new FragmentMap();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.detail_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
最新截图
答案 0 :(得分:2)
错误1
Error:(73, 96) error: incompatible types
required: android.support.v4.app.FragmentTransaction
found: android.app.FragmentTransaction
将getFragmentManager()
更改为getSupportFragmentManager()
,它应该有效。
当您使用支持lib(您的情况)时使用
getSupportFragmentManager()
。不使用支持lib时使用getFragmentManager()
。
错误2
Error:(72, 48) error: incompatible types
required: Fragment
found: FragmentMap
所以要替换片段,请使用:
Fragment newFragment = new FragmentMap();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.detail_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
newFragment
是要替换的但是抛出错误。
确保要替换的
FragmentMap
或任何其他片段由Fragment类(支持lib而不是正常的)扩展,因为newFragment
是来自Fragment
的对象支持lib)使用import android.support.v4.app.Fragment;
和不import android.app.Fragment;