当我尝试通过在活动中声明FragmentTransaction ft = getFragmentManager()。beginTransaction()来替换Fragment时,我总是有以下错误警告:
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);
}
该类是继承自:
的ActivitySupportpublic class ActivitySupport extends Activity implements IActivitySupport {
我试图将getFragmentManager更改为getSupportFragmentManager(),并且更糟糕的是警告方法未定义。
那么我该怎样做才能使getFragmentManager()成为支持v4的方法呢?
答案 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是进一步参考的链接。
希望这会有所帮助:)