gpt4 book ai didi

android - 从主题中获取 EditText 的 'default' 颜色值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:01 28 4
gpt4 key购买 nike

我有一个 Activity,其中包含 3.1 上的 EditText。根据用户输入,我更改了 EditText 中文本的颜色(红色表示错误),然后在文本正常时将其重置为黑色。

一个问题与更改 Activity 的整体主题有关。例如,将其从浅色主题更改为常规深色主题会导致黑色文本显示在黑色背景上 - 因此我需要进入并更改代码,而不是在数据正常时将文本重置为白色。

如果我对 Activity 进行主题更改,我不必更改此代码,我想知道是否有办法以编程方式为给定主题提取默认的 EditText 文本颜色,然后我可以将文本切换回默认颜色而不是硬编码的白色、黑色等。

最佳答案

根据Theme's docs使用 obtainStyledAttributes 直接获取颜色。

TypedArray themeArray = context.getTheme().obtainStyledAttributes(new int[] {android.R.attr.editTextColor});
try {
int index = 0;
int defaultColourValue = 0;
int editTextColour = themeArray.getColor(index, defaultColourValue);
}
finally
{
// Calling recycle() is important. Especially if you use alot of TypedArrays
// http://stackoverflow.com/a/13805641/8524
themeArray.recycle();
}

关于android - 从主题中获取 EditText 的 'default' 颜色值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598414/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com