在Android Studio中以编程方式将文本颜色设置为textColorPrimary?

0aydgbwb  于 2022-12-21  发布在  Android
关注(0)|答案(1)|浏览(132)

我想将动态生成的TextView的文本颜色更改为android.R.attr.textColorPrimary。因此,如果停用黑暗主题,则应为黑色,如果激活,则应为白色。
我试过了:

//Get the primary text color of the theme
    TypedValue typedValue = new TypedValue();
    Resources.Theme theme = getApplication().getTheme();
    theme.resolveAttribute(android.R.attr.textColorPrimary,typedValue,false);
    TypedArray arr = getApplicationContext().obtainStyledAttributes(typedValue.data, new int[]{
            android.R.attr.textColorPrimary});
    int primaryColor = arr.getColor(0,-1);
    tV1.setTextColor(primaryColor);

颜色变成了黑色,但它总是黑色,它不会改变,如果我激活或停用黑暗的主题操作系统。

fkaflof6

fkaflof61#

我只需要改变getApplication(). to this.

//Get the primary text color of the theme
TypedValue typedValue = new TypedValue();
Resources.Theme theme = this.getTheme();
theme.resolveAttribute(android.R.attr.textColorPrimary,typedValue,false);
TypedArray arr = this.obtainStyledAttributes(typedValue.data, new int[]{
        android.R.attr.textColorPrimary});
int primaryColor = arr.getColor(0,-1);
tV1.setTextColor(primaryColor);

相关问题