1

どこでもホロを使っています。アプリ用に独自のテーマを作成しました。このテーマを自分のアクティビティにうまく適用できます。私のテーマは、CheckBox、EditText、DatePicker などのドローアブルを変更します。問題は、このテーマが PreferenceActivity に対して機能しないことです。不可解なのは、テーマを Holo.Theme または Holo.Theme.Light に設定すると、必要に応じて変更されることです。しかし、Holo.Theme.Light から派生したテーマに変更すると、変更されません。それでも、それが機能する他のすべてのアクティビティ。次の方法でアクティビティのテーマを変更します。

activity.setTheme(R.style.MyCustomTheme);

これはすべて、PreferenceActivity ではなく、他のすべてのアクティビティで機能します。設定アクティビティのテーマを変更するために設定する必要がある文書化されていない属性はありますか?

4

2 に答える 2

3

スタイル.xml

<style name="SettingsTheme" parent="android:Theme.Light">
   <!-- Override properties according to your need -->
   <item name="android:colorBackground">#ffffff</item>
   <item name="android:colorForeground">#aaaaaa</item>

   <item name="android:textColorPrimary">#ff0000</item>
   <item name="android:textColorSecondary">#0000ff</item>
   <item name="android:textColorTertiary">#00ff00</item>
   <item name="android:textColorPrimaryDisableOnly">#888888</item>
   <item name="android:textColorHint">#778899</item>
</style>

AndroidManifest.xmlを使用して、新しく定義したスタイルを Preference アクティビティに適用します。android:theme

<activity android:name=".SettingsThemeActivity"
      android:label="@string/app_name"
      android:theme="@style/SettingsTheme">

編集:前にテーマを設定してみてください

setTheme(R.style.SettingsTheme);

setContentView(R.layout.main);
于 2014-05-04T15:37:26.777 に答える
0

いいえ、文書化されていないわけではありません:「アクティビティのテーマにカスタム設定スタイルを入れましたが、何も起こりません!

他のテーマ (アクティビティ テーマではない) を使用する基本設定項目/ビューの場合、PreferenceInit.map メソッドを使用してテーマを再マップする必要があります。

import org.holoeverywhere.app.Application;

public class MyApplication extends Application {
  static {
    PreferenceInit.map(R.style.CustomPreferenceTheme, R.style.CustomPreferenceTheme_Light);
  }
}
于 2014-05-05T16:24:46.317 に答える