从ICS执行时弹出显示姜饼主题

use*_*538 0 android

从服务中,我试图展示吐司,而不管前景中有什么应用程序.为此,我使用主题为的活动Theme.Dialog

以下是我在清单中声明的​​方式:

    <activity android:process="@string/process" 
              android:name="com.android.blesettings.findmeserver.LaunchPopup" 
              android:configChanges="orientation|screenSize"
              android:theme="@android:style/Theme.Dialog" >
    </activity>
Run Code Online (Sandbox Code Playgroud)

除主题外,一切正常.弹出窗口的主题是Gingerbread(不确定为什么会发生!),虽然我在ICS中运行应用程序.我怎样才能解决这个问题,所以弹出的主题是ICS而不是Gingerbread

任何帮助表示赞赏

弹出显示姜饼主题

yra*_*abi 5

您应该使用Holo主题来匹配ICS样式,如下所示:Theme.Holo.Dialog而不是Theme.dialog

但较旧的API不支持Holo主题.因此,为了使您的应用程序与旧版本兼容,您应该styles.xmlvalues-v14文件夹下定义文件(v14 = ICS)

values-v14/styles.xml:

<style name="DialogTheme" parent="@android:style/Theme.Holo.Dialog">
    <item name="android:windowNoTitle">true</item>      
</style>
Run Code Online (Sandbox Code Playgroud)

values/styles.xml:

<style name="DialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>      
</style>
Run Code Online (Sandbox Code Playgroud)

然后,将您的活动定义更改为:

<activity android:process="@string/process" 
          android:name="com.android.blesettings.findmeserver.LaunchPopup" 
          android:configChanges="orientation|screenSize"
          android:theme="@style/DialogTheme" >
</activity>
Run Code Online (Sandbox Code Playgroud)