2016-12-12 9 views
1

私はこのようになりますクラスを持っているDialogFragment表示されないメッセージ

MyDialogFragment dialog = new MyDialogFragment(); 
dialog.showAllowingStateLoss(fragmentManager); 

問題は、メッセージがアプリで示されていないということです私は間違って何をやっている

Screenshot

:、それだけでこれを表示しますか?

+0

AlertDialogを内部で使用すると、なぜダイアログフラグメントを使用していますか? –

+0

@JozefDochanは分かりませんが、これは私が「継承した」アプリケーションからのコードの簡略化されたバージョンです:)私はAndroid開発についてはほとんど知っていませんが、バグを修正しようとしています。 – TheQ

+0

メッセージとyes/noボタンを表示する場合、dialogFragmentを使用するポイントがありません。単純にどこにdialogFragmentを作成していますかAlerDialogを作成します –

答えて

0

私自身が解決策を見つけました。どうやらダイアログはテキストの色としてテーマのandroid:textColorPrimaryを使用していて、その色は私のアプリでは白です。その結果、白い背景に白いテキストが含まれるアラートダイアログが表示されます。

ソリューションがtheme.xmlでこれを追加することであった:

<style name="MyAndroidTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:alertDialogTheme">@style/MyAlertDialogTheme</item> 
</style> 

<style name="MyAlertDialogTheme" parent="MyAndroidTheme"> 
    <item name="android:textColorPrimary">@android:color/black</item> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:windowIsFloating">true</item> 
</style> 

android:windowIsFloatingが必要な理由私は本当に知りませんが、それなしで、ダイアログがフルスクリーンになります。

3

DialogFragment.を追加する必要はありません。ダイアログを表示する方法はshow()です。これは問題かもしれません。

MyDialogFragment dialog = new MyDialogFragment(); 
dialog.show(getFragmentManager(),dialog.getClass().getSimpleName()); 

私の悪い英語のために申し訳ありません。

+0

これは、私の質問のコードと全く同じ動作になります - テキストのないダイアログボックス、タイトルとボタンのみ:( – TheQ

関連する問題