为啥 getFragmentManager 会导致 Incompatible Type 错误? [关闭]

Posted

技术标签:

【中文标题】为啥 getFragmentManager 会导致 Incompatible Type 错误? [关闭]【英文标题】:Why would getFragmentManager result in an Incompatible Type error? [closed]为什么 getFragmentManager 会导致 Incompatible Type 错误? [关闭] 【发布时间】:2017-04-24 22:17:54 【问题描述】:

我正在使用 FragmentManager 制作一个简单的待办事项列表应用程序。当我创建FragmentManager 的实例时,出现错误(如上所示)。

【问题讨论】:

什么标题!!!好久不见 使用 getSupportFragmentManager import android.app.FragmentManager 而不是.support.v4. 一个... 在此处发布问题之前,请确保您已在网上搜索过一段时间! -9 票几乎可以肯定是因为这里最初使用的标题。在互联网上的任何网站上提出技术问题时,请始终使用有用的描述性标题。谢谢。 【参考方案1】:

getFragmentManagaer() 返回android.app.FragmentManager. 的对象使用getSupportFragmentManager() 它返回 android.support.v4.app.FragmentManager

【讨论】:

【参考方案2】:

您使用了错误类型的 FragmentManager(一种是 android.support.v4.app.FragmentManager,另一种是 android.app.FragmentManager。)尝试 getSupportFragmentManager()。

【讨论】:

【参考方案3】:

android中有两种fragment manager,一种是app.FragmentManager,另一种是v4.app.FragmentManager。在这里您使用的是 v4 支持片段。

所以要获取片段管理器的实例,你必须写

FragmentManager fm = getSupportFragmentManager();

或者如果你想使用

 FragmentManager fm = getSupportManager();

然后删除

的导入
import android.support.v4.app.FragmentManager

然后导入

import android.app.FragmentManager;

【讨论】:

以上是关于为啥 getFragmentManager 会导致 Incompatible Type 错误? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

getFragmentManager() 无法在自定义对话框上解决

关闭从另一个对话框片段启动的对话框片段会导致非法状态异常

getFragmentManager和getChildFragmentManager

如何在适配器中使用 getFragmentManager()

为啥无限递归会导致段错误

为啥@ManyToMany 会导致 NullPointerException?