2

我是新來的android開發。FragmentActivity類下面的api級別11設備

我創建了類並從FragmentActivity擴展了該類。

當我使用這個功能getFragmentManager()

它不允許我這樣做

我也無法使用getSupportFragmentManager,因爲它無法從支持API轉換也給了我錯誤android.app

但後來我在我的抽象類中使用了TargetApi(11)屬性,我從FragmentActivity類延伸。

現在錯誤消失了。

但我想知道,targetApi(11)是否限制我的應用程序在api 11以下的adroid設備上運行我的應用程序?

或者低於api 11不允許fragmment或因此不支持FragmentActivity類?

如果我提到的最後一件事情是真的,我應該使用新的活動而不是片段嗎?

+0

您使用的是Android Studio嗎?您是否已將'appcompat' /'support'庫添加到您的項目中? –

回答

2

TargetApi(11)只抑制lint警告,您的應用程序仍然可以在11以下運行。但是如果API在低級Android平臺中不可用,則可能會崩潰。

解決您的問題,正確的方法是使用Android支持庫,它包括在包android.support.v4.appFragmentActivity

你需要編輯你gradle這個文件包含Android的支持庫

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

隨後的gradle同步文件,並重新編譯您的項目。

1

請勿導入android.app.FragmentActivity。 它需要比android 3.0更大的api。 你可以導入android.support.v4.app,FragmentActivity !! 而你的問題解決了!

相關問題