Android Fragment Transaction 錯誤的論點,片段,應該是 android.support.v4



在我的应用程序中,我有主要活动,它实现了在两个片段之间切换的TabLayout。它们的处理方式如下:

private class PagerAdapter extends FragmentPagerAdapter {
PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return position == 0 ? Tab1Frag.getInstance()
: Tab2Frag.getInstance();
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
return position == 0 ? "Tab1" : "Tab2";
}
}

它们都(这些片段(从

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager

否则我不能以这种方式使用它们。

一切正常,但现在我面临这个问题。我有时想使用以下方法将 Tab1 片段更改为不同的片段:

private void replaceFragment(int code( { FragmentTransaction ft = getFragmentManager((.beginTransaction((;

if(code==0){
ViewListElementFrag fragment = new ViewListElementFrag ();
ft.replace(R.id.fragmentFrame, fragment, ViewListElementFrag.TAG);
}
else if(code==1){
EditElementFragment fragment = new EditElementFragment ();
ft.replace(R.id.fragmentFrame, fragment, EditElementFragment.TAG);
}
ft.commit();
}

这正常工作正常,但现在它面临着问题。

FragmentTransaction ft = getFragmentManager().beginTransaction();

需要是 appv4,但它不允许从标准 android.app.fragment 替换片段。如何使其工作,以便选项卡布局中的片段可以替换为其他片段?还是我需要使用新活动?

谢谢你 格热戈兹

编辑:

解释一下。在行中

ft.replace(R.id.fragmentFrame, fragment, FragmentWhatever.TAG);

我收到第二个参数片段应该为android.suppotr.v4.app.Fragment类型的

错误

而不是 :

FragmentTransaction ft = getFragmentManager().beginTransaction();

使用支持库:

FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();

还要确保导入:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

你也可以用它来替换片段

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.fragmentFrame, fragment).commit();

最新更新