我是Android开发的新手。
我创建了类并从FragmentActivity
扩展了该类。
当我使用此功能时getFragmentManager()
它不允许我这样做
我也无法使用getSupportFragmentManager
因为它也给了我无法从支持api转换为android.app的错误
但后来我在我从FragmentActivity
类扩展的抽象类中使用了TargetApi(11)属性。
现在错误消失了。
但我想知道,targetApi(11)是否限制我的应用在api 11以下的adroid设备上运行我的应用程序?
或者api 11以下不允许碎片或因此不支持FragmentActivity类?
如果我提到的最后一件事情是真的,我应该使用新的活动代替片段吗?
答案 0 :(得分: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文件并重新编译项目。
答案 1 :(得分:1)
不要导入android.app.FragmentActivity。 它需要api比android 3.0更大。 你可以导入android.support.v4.app,FragmentActivity !! 而你的问题就解决了!