NumberPicker选中项颜色
时间: 2024-01-09 12:05:07 浏览: 56
可以通过设置`NumberPicker`的`setSelectedTextColor()`方法来改变选中项的颜色。例如:
```java
numberPicker.setSelectedTextColor(Color.RED);
```
这将把选中的数字的颜色改为红色。请注意,这个方法只在API 29及以上版本中可用。如果你的应用需要支持较旧的API级别,你可以使用反射来设置选定文本的颜色。以下是一个示例:
```java
public static void setNumberPickerTextColor(NumberPicker numberPicker, int color) {
final int count = numberPicker.getChildCount();
for (int i = 0; i < count; i++) {
View child = numberPicker.getChildAt(i);
if (child instanceof EditText) {
try {
Field selectorWheelPaintField = numberPicker.getClass()
.getDeclaredField("mSelectorWheelPaint");
selectorWheelPaintField.setAccessible(true);
((Paint) selectorWheelPaintField.get(numberPicker)).setColor(color);
((EditText) child).setTextColor(color);
numberPicker.invalidate();
} catch (NoSuchFieldException | IllegalAccessException | IllegalArgumentException e) {
e.printStackTrace();
}
}
}
}
```
你可以在代码中调用这个方法来改变选中项的颜色。例如:
```java
setNumberPickerTextColor(numberPicker, Color.RED);
```