2013-10-08 34 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文件。