使用getFragmentManager()在Android中为FragmentTransaction键入不匹配.startTransaction()

时间:2013-11-09 19:00:42

标签: android fragment fragmenttransaction

当我尝试通过在活动中声明FragmentTransaction ft = getFragmentManager()。beginTransaction()来替换Fragment时,我总是有以下错误警告:

enter image description here

import android.support.v4.app.FragmentTransaction;

    public class MainFrameActivity extends ActivitySupport {

    FragmentTransaction ft = getFragmentManager().beginTransaction();

    switch (position) {
    case 0:
        ft.replace(R.id.content_frame, fragmentDiscover);
        break;
    case 1:
        ft.replace(R.id.content_frame, fragmentPersonInfo);
        break;
    }

    ft.commit();

    mDrawerList.setItemChecked(position, true);

    mDrawerLayout.closeDrawer(mDrawerList);
}

该类是继承自:

的ActivitySupport
public class ActivitySupport extends Activity implements IActivitySupport {

我试图将getFragmentManager更改为getSupportFragmentManager(),并且更糟糕的是警告方法未定义。

那么我该怎样做才能使getFragmentManager()成为支持v4的方法呢?

2 个答案:

答案 0 :(得分:4)

改变它

public class ActivitySupport extends Activity implements IActivitySupport {

public class ActivitySupport extends FragmentActivity implements IActivitySupport {

然后它会起作用

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

答案 1 :(得分:3)

首先扩展FragmentActivity并确保使用支持库中的那个。

尝试使用getSupportFragmentManager().beginTransaction()代替getFragmentManager().beginTransaction()

问题是您从v4支持库导入了FragmentTransaction,而您没有使用v4支持库中的片段管理器。

Here是进一步参考的链接。

希望这会有所帮助:)