Android 兼容包不包含 Activity.getFragmentManager()

Posted

技术标签:

【中文标题】Android 兼容包不包含 Activity.getFragmentManager()【英文标题】:Android Compatibility Package doesn't include Activity.getFragmentManager() 【发布时间】:2011-07-09 17:06:15 【问题描述】:

我开始尝试使用 3 月 3 日刚刚发布的 android 兼容性包向我的基于 2.1 的 Android 应用添加片段。我将库包含到我的项目中,并开始将代码从基于 Activity 的类移动到基于 Fragment 的类,但我注意到 Google 的 Fragment 示例似乎依赖于 Activity 类在 3.0 (Honeycomb)具有新方法 getFragmentManager()。它似乎是 Fragment 系统中不可或缺的钩子。

我试图在兼容性包库中查找一些包含 getFragmentManager() 的 Activity 实现,但我找不到它。有谁知道我在哪里可以找到 getFragmentManager() 以便我可以包含 Fragments 以实现 Honeycomb 兼容性,或者如果不知道如何在不使用 FragmentManager 的情况下包含 Fragments?

【问题讨论】:

【参考方案1】:

您需要扩展FragmentActivity 而不是普通的Activity。然后您就可以调用getSupportFragmentManager(),其工作方式与getFragmentManager() 相同。

【讨论】:

这个答案让我省了很多苦头!谢谢。 对以这种方式使用 Google Maps API 有什么建议吗?不能同时扩展 MapView 和 FragmentActivity getSupportFragmentManager() 和 getFragmentmanager() 有什么区别? @IgorG。 getFragmentManager() 仅在 Android 3.0+ 中可用,是获取 FragmentManager 的“本机”方法。 getSupportFragmentManager() 基本上做同样的事情,但它是该方法的兼容性库实现。 在开发一个部署在 2.2 forward 上的应用程序时,“getSupportFragmentManager()”是否只是在支持本机调用的平台上调用“getFragmentManager()”?【参考方案2】:

您只需将 Android Target 更改为 API Level = 12

【讨论】:

【参考方案3】:

对于尝试使用 Google Maps SDK 进行这项工作的人,请参阅 getFragmentManager with API8 并记得更新您的布局文件!

【讨论】:

以上是关于Android 兼容包不包含 Activity.getFragmentManager()的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?

由于 3.4.4 包不兼容,将 R 更新到 4.0 或更高版本?格维兹

vs2017运行不起来.net web程序,包不兼容

我一套java代码里既要连接mysql5数据库,又要连mysql8版本,驱动jar包不兼容怎么办?

Android Studio .2.2 和 Gradle 包不存在

Android Studio 库“错误:包不存在”