Android中查找一个Layout中指定的子控件

咱们一般但愿查找一个页面中指定类型的控件,单个控件知道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

相关文章
相关标签/搜索