2013-10-08 59 views
1

我有一個沒有任何主題的應用程序。 我想只在對話框上保留默認的Android主題。如何在對話框上應用默認主題

爲此,我創建了一個自定義對話框(稱爲MyDialog)。在構造函數中,我已經把:

public MyDialog() { 
    if (getAndroidVersion() >= Build.VERSION_CODES.HONEYCOMB) 
     setStyle(DialogFragment.STYLE_NORMAL, 
       android.R.style.Theme_Holo_Dialog_NoActionBar); 
} 

但是當對話框出現時,它沒有任何主題。事實上,在Android 4.2上進行測試時,對話框會顯示舊的Android主題。

如何顯示當前版本的對話框?

回答

1

嘗試使用AlertDialog.Builder類來構建對話框。使用AlertDialog.Builder(Context context, int theme)設置對話框主題。

0

另一種解決方案是通過分配一定的style到創建的Dialog

Dialog dialog = new Dialog(mContext, R.style.Theme_Dialog); 

,然後在styles.xml這是在文件夾定義主題:

<style name="Theme_Dialog" parent="@android:style/Theme"> <!-- or whatever Theme you want --> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    </style> 

爲您這裏的情況下(默認的應用程序主題),只需去AndroidManifest.xml應用程序選項卡),然後尋找主題ApplicationAttributes,這將是一個直接的system_theme項目資源主題,如果是的話,知道它的名字,你會發現它存儲在該名稱下的styles.xml文件。