1

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

在此处输入图像描述

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 支持的方法呢?

4

2 回答 2

4

更改

public class ActivitySupport extends Activity implements IActivitySupport {

public class ActivitySupport extends FragmentActivity implements IActivitySupport {

然后它会工作

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
于 2013-11-09T19:07:10.927 回答
3

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

尝试使用getSupportFragmentManager().beginTransaction()而不是getFragmentManager().beginTransaction().

问题是您已经从 v4 支持库中导入了 FragmentTransaction 并且您没有使用来自 v4 支持库的片段管理器。

是进一步参考的链接。

希望这可以帮助 : )

于 2013-11-09T19:11:59.163 回答