2011-07-19 3 views
7

SDKレベルでFragmentまたはDialogFragmentをサポートしていない3.0-デバイスでDialogFragmentを使用しようとしました。互換性パッケージを使用してDialogFragmentを表示するにはどうすればよいですか?

そこで、FragmentをサポートするAndroid互換ライブラリを使用することにしました。
次に、android.support.v4.app.DialogFragmentを拡張するDialogFragmentクラスを作成しました。私はDialogFragment.show()を使用して私のDialogFragmentを表示しようとしたとき、私はショー(FragmentManager、String)をandroid.app.FragmentManager、ないandroid.supportとして、最初の引数を受け入れることが通知

しかし..... .v4.app.FragmentManager

Android 3.0-デバイスではアンドロイド.app.FragmentManagerは使用できません。SDKには含まれていないためです。

互換性ライブラリでDialogFragmentを表示する方法はありますか?互換性ライブラリでMy DialogFragmentを表示する別の方法を使用する必要がありますか?

ご協力いただければ幸いです。 :)

答えて

15

互換パッケージは、3.0より前のAndroidバージョンで開発したものです。

両方FragmentManagerDialogFragmentクラスを使用すると、画面の真ん中に小さな(空の)ダイアログボックスを表示するには、次の操作を行うことができるはず任意のフラグメントまたは活性のAPIレベル11(3.0)

に存在します:

DialogFragment df = new DialogFragment(); 
df.show(getSupportFragmentManager(), "MyDF"); 
+5

getSupportFragmentManagerとgetFragmentManagerを(置き換えを使用するように制限されていない、すなわち、トランザクションの一部としてadd(...)またはreplace(...)を使用してFragmentと「ショー」としてDialogFragmentを扱うことができ

注意。 – Tom

10

FragmentManagerDialogFragmentは、SDKバージョン4のためにcompatのlibに存在し、上向きに、あなたはそれらのものをインポートすることを確認してください。

ユーザーgetSupportFragmentManager()あなたのコンパイル用にFragmentManagerを入手してください。

DialogFragmentに記載されているダイアログを表示し、 `FragmentManager 'のcompat libバージョンを渡します。あなたも、それはあなたがちょうど)show(...)

+1

add()とshow()の違いは何ですか? – David

関連する問題