【问题标题】:getSupportFragmentManager: incompatible typesgetSupportFragmentManager:不兼容的类型
【发布时间】:2018-05-08 18:12:11
【问题描述】:

我遵循了这个教程:https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer

现在我在这一点上:

// Insert the fragment by replacing any existing fragment
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();

        // Highlight the selected item has been done by NavigationView
        menuItem.setChecked(true);
        // Set action bar title
        setTitle(menuItem.getTitle());
        // Close the navigation drawer
        mDrawer.closeDrawers();

我的问题是这条线..

FragmentManager fragmentManager = getSupportFragmentManager();

告诉我一个错误:不兼容的类型。必需的 android.app.FragmentManager 找到:android.support.v4.app.FragmentManager。

我看到了一些帖子,但它们对我不起作用。

我用 AppCompatActivity 扩展了我的课程,尝试了 FragmentActivity 但这不起作用。

如果我将 FragmentManager 更改为 android.support.v4.app.FragmentManager,错误就会消失,然后

fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();显示:错误的第二个参数类型。发现:'android.app.Fragment',required'android.support.v4.app.Fragment'

请帮助我:/

【问题讨论】:

  • 转到文件顶部的导入并将它们更改为 android.support.v4.app.Fragmentandroid.support.v4.app.FragmentManager 我的意思是从那里删除 android.app.FragmentManagerandroid.app.Fragment 一切都会好起来的。
  • 工作,谢谢:)
  • 不客气,编码愉快!

标签: android android-fragments


【解决方案1】:

改变

import android.app.Fragment;
import android.app.FragmentManager;

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

在每个班级。您正面临问题,因为在 Fragment 创建类中您使用支持 v4 片段,而在 MainActivity 类中您正在膨胀为一个简单的片段。

您还需要将 getFragmentManager() 更改为 getSupportFragmentManager(),并确保它们扩展了 FragmentActivity 类。

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2015-08-11
    • 1970-01-01
    • 2011-07-07
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多