我是android新手,现在我正试图找到一种方法来获取控件的数量(我不知道如何在android中调用这些控件,我的意思是我有4个文本视图、2个编辑文本、3个按钮,所以总共有9个“控件”),有没有办法计算它们?
最佳答案
在android中称为视图。是的,连按钮都有。您可以使用getChildCount(),但如果视图中有视图,则必须递归地执行此操作。我要做的是获取基本视图,然后使用以下内容:
public int getViewCount(View view) {
int viewCount = 1;
if(view instanceof ViewGroup) {
viewCount += countChildren((ViewGroup)view);
}
return viewCount;
}
public int countChildren(ViewGroup viewGroup) {
int viewCount = 0;
for(int i = 0; i < viewGroup.getChildCount(); i++){
viewCount += getViewCount(viewGroup.getChildAt(i));
}
return viewCount;
}
使事情复杂化的是,只有viewgroups可以有子级,但按钮和内容是view的实例,而不是viewgroup的实例。
如果不希望它计算视图组,请尝试以下操作:
public int getViewCount(View view) {
int viewCount = 1;
if(view instanceof ViewGroup) {
viewCount = 0; // Uncounts for ViewGroups, but still checks them for Views.
viewCount += countChildren((ViewGroup)view);
}
return viewCount;
}
public int countChildren(ViewGroup viewGroup) {
int viewCount = 0;
for(int i = 0; i < viewGroup.getChildCount(); i++){
viewCount += getViewCount(viewGroup.getChildAt(i));
}
return viewCount;
}