2

我是android开发的新手。

我创建了类并从FragmentActivity.

当我使用这个功能getFragmentManager()

它不允许我这样做

我也无法使用getSupportFragmentManager,因为它也给了我无法从支持 api 转换为 android.app 的错误

但是后来我在从FragmentActivity类扩展的抽象类上使用了 TargetApi(11) 属性。

现在错误消失了。

但我想知道,targetApi(11) 是否会限制我的应用在 api 11 以下的安卓设备上运行我的应用?

或者低于 api 11 不允许碎片或因此不支持 FragmentActivity 类?

如果我提到的最后一件事是真的,我应该使用新活动而不是片段吗?

4

2 回答 2

2

TargetApi(11)仅抑制 lint 警告,您的应用程序仍然可以在 11 以下运行。但是如果 API 在较低的 Android 平台中不可用,则可能会崩溃。

解决问题的正确方法是使用 Android 支持库,它在包android.support.v4.app中包含FragmentActivity

您需要编辑您的 gradle 文件以包含 android 支持库

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.android.support:support-v4:22.2.0'
}

然后同步 gradle 文件并重新编译您的项目。

于 2016-01-01T08:05:16.837 回答
1

不要导入 android.app.FragmentActivity。它需要大于 android 3.0 的 api。可以导入android.support.v4.app,FragmentActivity!!你的问题就解决了!

于 2016-01-01T09:13:17.017 回答