片段替换错误

时间:2015-05-23 15:58:15

标签: java android android-intent android-fragments android-activity

我试图替换我的一个片段,但由于这些错误,我无法这样做。但是我已经有了这些进口,因此我不知道这里有什么错误。

错误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();

enter image description here

最新截图 enter image description here

1 个答案:

答案 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;