7

SDK レベルでフラグメントまたは DialogFragment をサポートしていない 3.0 デバイスで DialogFragment を使用しようとしました。

そこで、Fragment をサポートする Android 互換ライブラリを使用することにしました。次に、 android.support.v4.app.DialogFragment
を拡張する DialogFragment クラスを作成しました。

しかし..... DialogFragment.show() を使用して DialogFragment を表示しようとすると、 show(FragmentManager, String) が最初の引数をandroid.support.v4.app.FragmentManagerではなくandroid.app.FragmentManagerとして受け入れることが通知されました。

android.app.FragmentManager は SDK に含まれていないため、Android 3.0 以降のデバイスでは使用できないと思います。

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

どんな助けでも大歓迎です。:)

4

2 に答える 2

15

互換性パッケージは、Android 3.0 より前のバージョンで開発しているユーザー向けです。

FragmentManagerDialogFragmentクラスの両方が API レベル 11 (3.0) に存在します。

フラグメントまたはアクティビティでは、次の操作を実行して、画面の中央に小さな (空の) ダイアログを表示できる必要があります。

DialogFragment df = new DialogFragment();
df.show(getSupportFragmentManager(), "MyDF");
于 2011-07-19T12:43:15.800 に答える
10

FragmentManagerDialogFragmentまた、sdk バージョン 4 以降の互換ライブラリに存在する場合は、必ずそれらをインポートしてください。

互換ライブラリgetSupportFragmentManager()を取得するユーザー。FragmentManager

DialogFragment'FragmentManager' の compat lib バージョンを渡すドキュメントで説明されているように、ダイアログを表示します。

を使用して、またはトランザクションの一部DialogFragmentとして扱い、 Fragment「表示」することもできることに注意してください。つまり、使用するだけに制限されません。add(...)replace(...)show(...)

于 2011-07-19T12:57:33.997 に答える