gpt4 book ai didi

android - 如何根据文本的第一个字符从资源中动态加载颜色

转载 作者:行者123 更新时间:2023-12-03 14:59:47 25 4
gpt4 key购买 nike

我有一个联系人列表,我想更改 ListView 的文本颜色项目基于它具有的第一个字符。我在 color.xml 中为 [a-z] 上色并想将其设置为我的 TextView .我已经采取了这样的事情。

我的颜色.xml

<color name="a">#ff0000</color>
<color name="b">#00ff00</color>
<color name="c">#0000ff</color>`

我想做这样的事情。
textview1.setTextColor(
getResources().getIdentifier("@color/" + textview1.getText().toString().toLowerCase().charAt(0),
null,
getPackageName()));

还有其他方法可以执行此操作吗?
谁能给我推荐...
提前致谢...

最佳答案

问题中代码 fragment 的问题如下:

getResources().getIdentifier("@color/" +  textview1.getText().toString().toLowerCase().charAt(0),
null,
getPackageName())
返回 标识符 资源,但传递给 textview1.setTextColor(...) 的值方法应该是 颜色 value 本身(它们都具有相同的 int 类型,这就是它可以编译的原因)。
固定解决方案如下所示:
int resId = getResources().getIdentifier("@color/" +  textview1.getText().toString().toLowerCase().charAt(0),
null,
getPackageName());
int color = getResources().getColor(resId, theme); // or use ContextCompat.getColor(...)
textview1.setTextColor(color);

关于android - 如何根据文本的第一个字符从资源中动态加载颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39631790/

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