我是Android新手,我正在为我的应用中的一项活动实施NumberPicker。以下是我的代码的摘录:
picker = (NumberPicker)findViewById(R.id.order_confirm_bring_time_minute_picker);
picker.setMinValue(15);
picker.setMaxValue(120);
picker.setWrapSelectorWheel(false);
setNumberPickerTextColor(picker, android.R.color.black);
public boolean 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();
return true;
}
catch(NoSuchFieldException e){
Log.d("setNumberPickerTextColor", "NoSuchFieldException");
}
catch(IllegalAccessException e){
Log.d("setNumberPickerTextColor", "IllegalAccessException");
}
catch(IllegalArgumentException e){
Log.d("setNumberPickerTextColor", "IllegalArgumentException");
}
}
}
return false;
}
我查看了this post setNumberPickerTextColor
方法。但它似乎不起作用,因为我将我的颜色设置为变为黑色,但它不再可见。如果我不使用setNumberPickerTextColor
方法,那么我的默认颜色是白色,当我在NumberPicker的EditText字段中突出显示文本时可以看到。
当颜色未更改时,这是NumberPicker的屏幕截图。
这是NumberPicker的屏幕截图,当颜色变为黑色或任何其他颜色时(我已经过测试,结果相同)。
有没有办法在我的NumberPicker中自定义文本颜色?此外,我知道这是一个不同的问题,但顶部和底部“条形”的颜色也是因为它们不适合我的应用程序的颜色主题。在此先感谢您的帮助。
答案 0 :(得分:1)
您需要将已解析的颜色传递给setTextColor方法,而不是资源ID。
((EditText)child).setTextColor(getResources().getColor(color));