我想在SwitchPreference状态更改时更改PreferenceActivity所有视图的文本颜色。
prefs.xml
ICollection
PrefsActivity.java
$DIMENSIONES DEL PROBLEMA
DIMENSIONES : NPNOD= 27 , NELEM= 8 , NMATS= 1 , \
NNODE= 8 , NDIME= 3 , \
NCARG= 1 , NGDLN= 3, NPROP= 5, \
NGAUS= 1 , NTIPO= 1 , IWRIT= 1 ,\
INDSO= 10 , NPRES= 9
$---------------------------------------------------------
GEOMETRIA
$ CONECTIVIDADES ELEMENTALES
$ ELEM. MATER. SECUENCIA DE CONECTIVIDADES
1 1 8 6 12 20 18 15 23 25
2 1 19 8 20 24 26 18 25 27
3 1 5 2 6 8 14 11 15 18
4 1 17 5 8 19 21 14 18 26
5 1 7 4 9 13 8 6 12 20
6 1 16 7 13 22 19 8 20 24
7 1 3 1 4 7 5 2 6 8
8 1 10 3 7 16 17 5 8 19
} }
我可以这样更改布局的backgroundColor:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:summary="Settings"
android:title="Settings" >
<SwitchPreference
android:key="NightMode"
android:summary="dark and light"
android:title="Night Mode" />
...
</PreferenceCategory>
</PreferenceScreen>
但是如何更改文本颜色?
答案 0 :(得分:1)
更改文本颜色的方法是调用textviewinstance.setTextColor(color)
。不过,您需要对每个视图进行独立操作。
执行此操作的最佳方法是使用android主题系统。如果您在调用setContentView
之前设置了主题,则所有这些视图都将使用该主题创建。使用所需的夜间模式文本颜色作为主题。选择夜间模式后,请调用recreate()终止您的活动并开始新的活动,就像配置更改时发生的情况一样。然后在新实例的onCreate中,检查夜间模式是否打开,并在通过调用setTheme(theme)
设置内容视图之前选择您的主题。