咱們一般但願查找一個頁面中指定類型的控件,單個控件知道id很容易找到,可是若是是多個呢?或者說是在程序中自定義的控件,且不知道id怎麼辦呢?如想找到頁面中的Spinner,可用如下方法this
/**
* 從當前頁面中查找全部的Spinner控件
* @param group
* @return
*/
private Spinner findSpinner(ViewGroup group) {
if (group != null) {
for (int i = 0, j = group.getChildCount(); i < j; i++) {
View child = group.getChildAt(i);
if (child instanceof Spinner) {
return (Spinner) child;
} else if (child instanceof ViewGroup) {
Spinner result = findSpinner((ViewGroup) child);
if (result != null)
return result;
}get
}
}
return null;
}io
調用方法:findSpinner((ViewGroup) this.getWindow().getDecorView());程序
使用改方法能夠重置全部的Spinner,而不須要一個個去重置,代碼以下:方法
/**
* 重置全部的Spinner控件
* @param group
* @return
*/
private void resetSpinnerSelectItem(ViewGroup group) {
if (group != null) {
for (int i = 0, j = group.getChildCount(); i < j; i++) {
View child = group.getChildAt(i);
if (child instanceof Spinner) {
((Spinner) child).setSelection(0);
} else if (child instanceof ViewGroup) {
resetSpinnerSelectItem((ViewGroup) child);
}
}
}
}co