我想要在我的Android Spinner中更改显示的选定项的颜色(目标API级别为16及以上)。我已经尝试了在SO上发布的几种解决方案,包括为我的Spinner项创建自定义布局并将ColorStateList用作自定义布局的文本颜色属性,但没有成功。 Spinner显示在半透明背景上 - 因此项目的自定义布局不起作用,因为它向Spinner添加了颜色。 目前我的hack解决方案是:
if (_colorCodeSpinner.getSelectedView() != null) {
((TextView) _colorCodeSpinner.getSelectedView()).setTextColor(0xFFFFFFFF);
}
但仅当所选视图不为空时才有效(在屏幕方向更改时为空)。
我无法相信没有一个简单的解决方案来设置文本颜色。这似乎是您经常需要做的事情。同样,改变箭头的颜色也是如此,目前我通过
_colorCodeSpinner.getBackground().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
我有什么遗漏吗?怎么更改Spinner上的颜色是推荐的方法?
如图所示,Spinner中显示所选项目的文本颜色为黑色,但我想要将其改成白色。
编辑
澄清一下:我不是在寻找一些在运行时覆盖值的小代码片段(如我在此问题中发布的两个片段)。我正在寻找一种真正正确的方法来完成这个操作(例如在XML布局或通过主题设置)。只需设置一次文本颜色属性,以便我无需每次选择项目时都进行更新。