私はAndroidを初めて使用します。現在、コントロールの数を取得する方法を見つけようとしています(Androidでこれらを呼び出す方法がわかりません。つまり、4つのテキストビュー、2つの編集テキスト、3つのボタンがあるようです。全部で 9 個の「コントロール」があります)、それらを数える方法はありますか?
質問する
139 次
1 に答える
3
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;
}
複雑なのは、子を持つことができるのは ViewGroup のみですが、Button などは View のインスタンスであり、ViewGroup のインスタンスではないという事実です。
ViewGroupsをカウントしたくない場合は、これを試してください:
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;
}
于 2013-05-17T04:19:36.717 に答える