【问题标题】:How to change the text color of PreferenceCategory/PreferenceScreen如何更改 PreferenceCategory/PreferenceScreen 的文本颜色
【发布时间】:2016-10-22 10:46:39
【问题描述】:

这里是:

preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory
        android:key="@string/pref_basicsettings_key"
        android:title="@string/pref_basicsettings_title" >
        <CheckBoxPreference
            android:defaultValue="@string/pref_test1_default"
            android:key="@string/pref_test1_key"
            android:summary="@string/pref_test1_dlg"
            android:title="@string/pref_test1_title" />
        <CheckBoxPreference
            android:defaultValue="@string/pref_test2_default"
            android:key="@string/pref_test2_key"
            android:summary="@string/pref_test2_dlg"
            android:title="@string/pref_test2_title" />
    </PreferenceCategory>
</PreferenceScreen>

BasicSettingsActivity.java

public class BasicSettingsActivity extends PreferenceActivity {

    public static final String TAG = BasicSettingsActivity.class
            .getSimpleName();

    /** Called when the activity is first created. */
    @SuppressWarnings("deprecation")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        prefs.registerOnSharedPreferenceChangeListener(mSharedPreferenceListener);

        // add preference resource
        addPreferencesFromResource(com.testapp.R.xml.basic_settings);
    }
}

如何更改 PreferenceCategory 中的文本颜色?

【问题讨论】:

    标签: java android layout sharedpreferences textcolor


    【解决方案1】:

    添加新样式

    <style name="SettingStyle">
        <item name="android:background">#FFFFFF</item>
        <item name="android:textViewStyle">@style/PreferenceStyle</item>
    </style>
    <style name="PreferenceStyle" parent="android:Widget.TextView">
        <item name="android:textColor">#000000</item>
    </style>
    

    并将其包含在 Preference 活动中。

    public class SettingsActivity extends AppCompatActivity {
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.setting);
    
        setTheme(R.style.SettingStyle);
        ....
    
    }
    

    【讨论】:

      【解决方案2】:

      我添加了一个新样式:

      <style name="PreferenceScreen" parent="Theme.AppCompat">
          <item name="android:textColor">#ffffff</item>
          <item name="android:textColorPrimary">#ffffff</item>
          <item name="colorPrimary">#ff0000</item>
          <item name="colorPrimaryDark">#ff0000</item>
          <item name="colorAccent">#ff0000</item>
          <item name="android:background">#CCCCCC</item>
      </style>
      

      并将其包含在活动中:

      <activity android:name="com.smartipcamera.owlcam.ui.BasicSettingsActivity"
          android:theme="@style/PreferenceScreen" >
      </activity>
      

      【讨论】:

      • 如果元素依赖于其他元素并且 an 不活动,您不知道如何使颜色也发生变化吗?我对偏好屏幕自定义有同样的问题
      猜你喜欢
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      相关资源
      最近更新 更多