SwitchPreference使用時にenable、disableでtitleの色を変更したくなり、調べてみました。
まず、drawableフォルダにテキストカラーのmycolor.xmlを作成
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- disabled --> <item android:state_enabled="false" android:color="#868686" /> <!-- enabled --> <item android:color="#000000"/> </selector>
次に、valuesフォルダ内にthemes.xmlを作成。
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="my_theme" parent="@android:style/Theme.DeviceDefault"> <item name="android:background">#f0f0f0</item> <item name="android:windowNoTitle">true</item> <item name="android:textColor">@drawable/mycolor</item> </style> </resources>
作成したテーマをPreferenceActivityに適応( AndroidManifest )
<!-- 通知設定画面 --> <activity android:name="MyNotificationActivity" android:screenOrientation="portrait" android:launchMode="singleTask" android:theme="@style/my_theme" > </activity>
これで大丈夫でした。
今まではenable、disableの文字色をコードで書いていたのですが、xmlで書くと楽になりますね。
ちなみに、SwitchPreferenceですが、Android5.+では正常に動作しない事があるようです。d.hatena.ne.jp
stackoverflow.com