时间选择器,有时候需要点击文本框,即全选,而不必再移动光标,修改文本的大小显示,有如下代码实现:
// 找到时间选择器中的nunmberpicker
private List<NumberPicker> findNumberPicker(ViewGroup viewGroup)
{
List<NumberPicker> npList = new ArrayList<NumberPicker>();
View child = null;
if (null != viewGroup)
{
for (int i = 0; i < viewGroup.getChildCount(); i++)
{
child = viewGroup.getChildAt(i);
if (child instanceof NumberPicker)
{
npList.add((NumberPicker)child);
}
else if (child instanceof LinearLayout)
{
List<NumberPicker> result = findNumberPicker((ViewGroup)child);
if (result.size() > 0)
{
return result;
}
}
}
}
return npList;
}
// 找到numberpicker中的edittext控件
private EditText findEditText(NumberPicker np)
{
if (null != np)
{
for (int i = 0; i < np.getChildCount(); i++)
{
View child = np.getChildAt(i);
if (child instanceof EditText)
{
return (EditText)child;
}
}
}
return null;
}
//设置文本框的文字大小
private void setNumberPickerTextSize(ViewGroup viewGroup)
{
List<NumberPicker> npList = findNumberPicker(viewGroup);
if (null != npList)
{
for (NumberPicker np : npList)
{
EditText et = findEditText(np);
et.setFocusable(false);
et.setGravity(Gravity.CENTER);
et.setTextSize(10);
}
}
}