我正在为所有版本(版本2.2到4.2)开发一个Android应用程序。我在其中使用datePicker并使用以下代码将所选日期的颜色更改为白色:
if (currentapiVersion >= 14) {
ViewGroup dayChildpicker = (ViewGroup) datePicker
.findViewById (Resources.getSystem().getIdentifier("day", "id", "android"));
ViewGroup monthChildpicker = (ViewGroup) datePicker
.findViewById(Resources.getSystem().getIdentifier("month", "id", "android"));
ViewGroup yearChildpicker = (ViewGroup) datePicker
.findViewById(Resources.getSystem().getIdentifier("year", "id", "android"));
EditText dayET = null;
EditText mornthET = null;
EditText yearET = null;
dayET = (EditText) dayChildpicker.getChildAt(1);
mornthET = (EditText) monthChildpicker.getChildAt(1);
yearET = (EditText) yearChildpicker.getChildAt(1);
dayET.setTextColor(Color.WHITE); // null pointer error on this line
mornthET.setTextColor(Color.WHITE);
yearET.setTextColor(Color.WHITE);
}
但这是在行4.1中的android 4.1和4.2(Jelly beans)中抛出空指针异常
dayET.setTextColor(Color.WHITE);
在Jelly bean中,我没有在datepicker中获得编辑文本视图。
在豆形软糖中获取日期选择器的子项的方法是什么,以及如何在日期选择器中更改所选日期的文本颜色。
请指导我。
答案 0 :(得分:0)
我不确定getChildAt(1)
是否实际获得了控制权,因为可能无法保证控件在ViewGroup
中的顺序。但是,您应该能够通过标识符
更改这些
dayET = (EditText) dayChildpicker.getChildAt(1);
mornthET = (EditText) monthChildpicker.getChildAt(1);
yearET = (EditText) yearChildpicker.getChildAt(1);
到这些
dayET = (EditText) dayChildpicker.findViewById(Resources.getSystem().getIdentifier("numberpicker_input", "id", "android"));
mornthET = (EditText) monthChildpicker.findViewById(Resources.getSystem().getIdentifier("numberpicker_input", "id", "android"));
yearET = (EditText) yearChildpicker.findViewById(Resources.getSystem().getIdentifier("numberpicker_input", "id", "android"));
这应该允许您在没有空指针错误的情况下正确引用它们。
如果您有其他问题或者它不起作用,请告诉我。