使用Fragment Manager时无法解析方法add()

时间:2016-03-18 07:44:32

标签: android

即使我使用了import android.support.v4.app.FragmentManager;

我得到了这样的错误......

  

错误:(58,42)错误:找不到合适的方法   添加(INT,AnnouncementListFragment)

     

方法FragmentTransaction.add(int,Fragment,String)不适用   (实际和正式的参数列表长度不同)

     

方法FragmentTransaction.add(int,Fragment)不适用(实际   参数AnnouncementListFragment无法转换为Fragment by   方法调用转换)

     

方法FragmentTransaction.add(Fragment,String)不适用   (实际的参数int不能通过方法转换为Fragment   调用转换)

我的部分代码:

displayFragment = getSupportFragmentManager();
fragment = new AnnouncementListFragment();
displayFragment.beginTransaction().add(R.id.announce_fragment,fragment).commit();

2 个答案:

答案 0 :(得分:0)

你可以替换代码中的一行

getSupportFragmentManager() 

要     getFragmentManager()

或者,如果您从片段活动中替换/添加,则可以尝试这种方式。

public void displayFragmentWithArg(Fragment mFragment) {
    android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.addToBackStack("back");
    transaction.add(R.id.act_login_main_lContainer, mFragment).commit();
}

答案 1 :(得分:0)

FragmentManager displayFragment = ((FragmentActivity)getContext()).getSupportFragmentManager();
    fragment = new AnnouncementListFragment();
    displayFragment .beginTransaction()
            .add(R.id.announce_fragment, new fragment)
            .commit();