如何以编程方式更改首选项文本颜色?

How to change Preference text colour programmatically?

我正在以编程方式将首选项添加到我的 PreferenceScreen 实例(我将其添加到我的 PreferenceActivity)。一切都按预期工作,除了文本颜色,尽管尝试过,它始终是白色的:

我所做的一切:

    PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(this);

    PreferenceCategory category = new PreferenceCategory(this);
    category.setTitle("Hello");

    screen.addPreference(category);

    CheckBoxPreference testPreference = new CheckBoxPreference(getApplicationContext());
    testPreference.setTitle("Test");
    category.addPreference(testPreference);

    setPreferenceScreen(screen);

我已将主题设置为 ThemeOverlay.AppCompat.Dark(我不想要)并且文本清晰可辨,但这是在任何其他情况下的样子(我正在点击它所以你可以通过动画效果看到文字):

我该如何将这段文字变黑?

谢谢!

简单的修复,实际上:

我在 CheckBoxPreference testPreference = new CheckBoxPreference(getApplicationContext()); 中调用了 getApplicationContext(),不推荐用于膨胀视图,因为它几乎总是传递错误的主题。

所以,我将 getApplicationContext() 更改为 this 并加载了主题中描述的文本颜色。