我有一个联系人列表,我想ListView根据它的第一个字符更改项目的textcolor .我为[az]取了颜色color.xml并想把它设置为我的颜色TextView.我采取过这样的事情.
我的color.xml
<color name="a">#ff0000</color>
<color name="b">#00ff00</color>
<color name="c">#0000ff</color>`
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情.
textview1.setTextColor(
getResources().getIdentifier("@color/" + textview1.getText().toString().toLowerCase().charAt(0),
null,
getPackageName()));
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以执行此操作吗?任何人都可以建议我...在此先感谢...
问题中的代码片段的问题如下:
getResources().getIdentifier("@color/" + textview1.getText().toString().toLowerCase().charAt(0),
null,
getPackageName())
Run Code Online (Sandbox Code Playgroud)
返回资源的标识符textview1.setTextColor(...),但传递给该方法的值应该是颜色值本身(它们都具有相同的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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |