2015-09-06 81 views
6

你能幫我搞清楚爲什麼我的警報對話框黑色?!爲什麼我的Android Alert對話框BLACK?

最近我改變了我的應用主題來支持材質設計,但我的提醒對話框變黑了!

這是我創建對話框代碼:

AlertDialog.Builder alertDialog = new AlertDialog.Builder(TestActivity.this); 
    alertDialog.setCancelable(true); 
    alertDialog.setTitle("sample"); 
    alertDialog.setItems(new String[] { "a", "b" }, new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 

     } 
    }); 

    alertDialog.show(); 

和我的主要風格和對話風格

<style name="MaterialTheme" parent="Theme.AppCompat.NoActionBar"> 

    <item name="android:alertDialogStyle">@style/AppDialog</item> 
    <item name="android:alertDialogTheme">@style/AppDialog</item> 
    <item name="android:textColor">@color/black</item> 
    <item name="android:textColorPrimary">@color/black</item> 
    <item name="android:dialogTheme">@style/AppDialog</item> 
    <item name="colorPrimaryDark">@color/myPrimaryDarkColor</item> 
    <item name="android:textColorHint">@color/gray_1</item> 
    <item name="colorAccent">@color/myAccentColor</item> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
    <item name="android:windowBackground">@color/black</item> 
</style> 

<style name="AppDialog" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">#FFC107</item> 
    <item name="android:textColorPrimary">#FFFFFF</item> 
    <item name="android:background">#4CAF50</item> 
</style> 

回答

4

你不設定主題AlertDialog,使用主題,更改代碼:

ContextThemeWrapper ctw = new ContextThemeWrapper(TestActivity.this, R.style.AppDialog); 
AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctw); 
2

您必須對您的alertdialog構建器使用輕量級主題,例如THEME_H OLO_LIGHT。

AlertDialog.Builder alertDialog = new AlertDialog.Builder(this,AlertDialog.THEME_HOLO_LIGHT); 
+0

謝謝你,你的意見解決您的問題,這是事實。然而,我認爲這很簡單,並解釋自己。 – Boody

+0

但是,這已被棄用? – dsharew

相關問題