0

サービスから、フォアグラウンドにあるアプリケーションに関係なく、トーストを表示しようとしています。このために、私はテーマのあるアクティビティを使用します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>

テーマ以外はすべて問題なく動作します。私はICSでアプリケーションを実行していますが、ポップアップのテーマはGingerbreadのテーマです(なぜ発生するのかわかりません!)。表示されるポップアップのテーマがジンジャーブレッドではなくICSのテーマになるように、これをどのように解決できますか

どんな助けでも大歓迎です

ジンジャーブレッドのテーマを表示するポップアップ

4

1 に答える 1

5

次のように、 ICSスタイルに一致するようにHoloテーマを使用する必要があります。Theme.Holo.DialogTheme.dialog

ただし、古いAPIはHoloテーマをサポートしていません。したがって、アプリを古いバージョンと互換性を持たせるには、フォルダーstyles.xmlの下にファイルを定義する必要がありvalues-v14ます(v14 = ICS)

値-v14/styles.xml:

<style name="DialogTheme" parent="@android:style/Theme.Holo.Dialog">
    <item name="android:windowNoTitle">true</item>      
</style>

values / styles.xml:

<style name="DialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>      
</style>

次に、アクティビティ定義を次のように変更します。

<activity android:process="@string/process" 
          android:name="com.android.blesettings.findmeserver.LaunchPopup" 
          android:configChanges="orientation|screenSize"
          android:theme="@style/DialogTheme" >
</activity>
于 2012-09-19T13:16:44.960 に答える