api 级别 11 以下设备的 FragmentActivity 类
Posted
技术标签:
【中文标题】api 级别 11 以下设备的 FragmentActivity 类【英文标题】:FragmentActivity class for below api level 11 devices 【发布时间】:2016-04-05 21:35:49 【问题描述】:我是安卓开发新手。
我创建了类并从 FragmentActivity
扩展了该类。
当我使用这个功能时getFragmentManager()
它不允许我这样做
我也无法使用getSupportFragmentManager
,因为它也给了我无法从支持 api 转换为 android.app 的错误
但后来我在从FragmentActivity
类扩展的抽象类上使用了 TargetApi(11) 属性。
现在错误消失了。
但我想知道,targetApi(11) 是否会限制我的应用在 api 11 以下的安卓设备上运行我的应用?
或低于 api 11 不允许使用 Fragment 或因此不支持 FragmentActivity 类?
如果我提到的最后一件事是真的,我应该使用新活动而不是片段吗?
【问题讨论】:
您使用的是 Android Studio 吗?您是否将appcompat
/support
库添加到您的项目中?
【参考方案1】:
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 文件并重新编译您的项目。
【讨论】:
【参考方案2】:不要导入 android.app.FragmentActivity。 它需要大于 android 3.0 的 api。 可以导入android.support.v4.app,FragmentActivity!! 你的问题就解决了!
【讨论】:
以上是关于api 级别 11 以下设备的 FragmentActivity 类的主要内容,如果未能解决你的问题,请参考以下文章