我正在使用holoeverywhere。我已经为我的应用创建了自己的主题,我可以成功地将这个主题应用到我的活动中。我的主题更改了CheckBox,EditText,DatePicker等的drawable。 问题是这个主题为PreferenceActivity做了npot工作。令我感到困惑的是,如果我将主题设置为Holo.Theme或Holo.Theme.Light它应该改变。但是,如果我把它改成我的主题,它来自Holo.Theme.Light它没有。然而,它所做的所有其他活动都有效。 我通过以下方式更改活动主题:
activity.setTheme(R.style.MyCustomTheme);
所有这些都适用于所有其他活动,而不适用于PreferenceActivity。是否有一些未记录的属性必须设置为更改首选项活动主题?
答案 0 :(得分:3)
styles.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
android:theme
中的首选项活动
<activity android:name=".SettingsThemeActivity"
android:label="@string/app_name"
android:theme="@style/SettingsTheme">
编辑: 尝试在
之前设置主题setTheme(R.style.SettingsTheme);
setContentView(R.layout.main);
答案 1 :(得分:0)
不,它没有记录:&#34; I put custom preference styles in the activity theme, but nothing happened!&#34;。
对于使用其他主题(不是活动主题)的首选项/视图,您应该使用PreferenceInit.map方法重新映射主题。
import org.holoeverywhere.app.Application; public class MyApplication extends Application { static { PreferenceInit.map(R.style.CustomPreferenceTheme, R.style.CustomPreferenceTheme_Light); } }