FragmentManager.beginTransaction()无法应用于(int, android.app.fragment)。

4

我正在尝试在Android中创建一个导航抽屉,但是遇到了一些问题。我有一个在MainActivity.java中处理导航抽屉点击并将用户重定向到正确活动的方法。该方法如下所示:

      @Override
public void onNavigationDrawerItemSelected(int position) {
    // update the main content by replacing fragments
    android.app.Fragment objFragment = null;
    switch (position){
        case 0:
            objFragment= new menu1_Fragment();
            break;
        case 1:
            objFragment = new menu2_Fragment();
            break;
        case 2:
            objFragment = new menu3_Fragment();
            break;
    }
    FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction()
            .replace(R.id.container, objFragment)
            .commit();
}

我的问题是,在 .replace(R.id.container, objFragment) 的倒数第三行中,我遇到了一个错误: FragmentTransaction cannot be applied to (int, android.app.fragment)

1个回答

6
如果您使用 SupportFragmentManager,需要使用支持的 Fragment。 http://developer.android.com/reference/android/support/v4/app/Fragment.htmlhttp://developer.android.com/reference/android/support/v4/app/FragmentManager.html 与下面的链接不同: http://developer.android.com/reference/android/app/FragmentManager.htmlhttp://developer.android.com/reference/android/app/Fragment.html 两者之间不能混合使用。
// update the main content by replacing fragments
    android.support.v4.app.Fragment objFragment = null;
    switch (position){
        case 0:

简化,替换:

android.app.Fragment objFragment = null;

改为

android.support.v4.app.Fragment objFragment = null;


我以为当调用 getSupportFragmentManager(); 时已经调用了 SupportFragmentManager - rakeshdas
1
我想表达的是,你不需要使用支持片段。 - Blundell
我完成了以上所有的编辑,但现在在switch语句的情况下出现了错误,一个“不兼容类型”的错误。 - rakeshdas
1
现在您需要进入 menu1_Fragment 并确保它正在扩展正确的 Fragment - Blundell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接