2

私はアンドロイド開発が初めてです。

クラスを作成し、そのクラスを から拡張しましたFragmentActivity

この機能を使うとgetFragmentManager()

それは私がそれをすることを許可しません

getSupportFragmentManagerサポートAPIからandroid.appに変換できないというエラーも表示されるため、使用できません

しかし、クラスから拡張した抽象クラスで TargetApi(11) 属性を使用しましたFragmentActivity

これでエラーはなくなりました。

しかし、私が知りたいのは、targetApi(11) は、API 11 未満の Android デバイスでアプリを実行することを制限しますか?

または、api 11 未満ではフラグメントが許可されていないか、FragmentActivity クラスがサポートされていませんか?

私が言及した最後のことが本当なら、フラグメントの代わりに新しいアクティビティを使用する必要がありますか?

4

2 に答える 2

2

TargetApi(11)は lint 警告のみを抑制します。アプリは 11 未満でも引き続き実行できます。ただし、下位の Android プラットフォームで API が使用できない場合にクラッシュする可能性があります。

問題を解決する正しい方法は、Android サポート ライブラリを使用することです。これには、パッケージandroid.support.v4.appにFragmentActivityが含まれています。

Androidサポートライブラリを含めるには、gradleファイルを編集する必要があります

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 に答える