Java FragmentTransaction.add()参数给出;“需要片段”;错误,即使参数是片段

Java FragmentTransaction.add()参数给出;“需要片段”;错误,即使参数是片段,java,android,android-fragments,Java,Android,Android Fragments,相关代码: addDay.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ ++fragIdCount; FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragment

相关代码:

addDay.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            ++fragIdCount;
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            String fragString = Integer.toString(fragIdCount);
            TemplateFragment1 frag2 = new TemplateFragment1(); // creating new fragment frag2 of fragment TemplateFragment1
            fragmentTransaction.add(R.id.templateFragmentLayout, frag2, fragString); // "frag2" is where the error is
            fragmentTransaction.commit();
            fragmentManager.executePendingTransactions();
        }
    });
TemplateFragment1是一个片段。我正在创建一个新变量,它是一个新的TemplateFragment1片段。当我把它传入(frag2)时,我得到一个错误,说它需要一个片段,但是frag2是一个片段!这很奇怪,因为我在程序的其他地方有这样一个结构,运行良好


编辑:我做了一些研究,我不知道为什么我要使用支持片段,但现在我知道了

您可能正在传递支持片段(android.support.v4.app.fragment),在这种情况下,您应该使用getSupportFragmentManager(),或者在另一种情况下使用android.app.fragment

您的
TemplateFragment1
可能扩展了
android.support.v4.app.fragment
(检查该类中的导入),您使用的是
getFragmentManager
方法,该方法采用的参数类型为
android.app.Fragment
,与支持库中的参数不同


将方法更改为
getSupportFragmentManager
TemplateFragment1
以扩展适当的片段,
android.app.Fragment

检查导入
android.app.Fragment
android.support.v4.app.Fragment
不同,很高兴能提供帮助。不久前我自己也有同样的问题:)