마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 액티비티 내 뷰 개수

0 추천
1. 한 액티비티 안에 있는 위젯들의 전체 개수를 알수 있는 방법이 있나요?

2. 액티비티 안에 있는 전체 뷰들을 반복문으로 액세스 할수 있나요?
범버러범범 (180 포인트) 님이 2016년 9월 5일 질문
먼저 관련 API문서를 잘 살펴보시기 바랍니다.
https://developer.android.com/reference/android/view/View.html
https://developer.android.com/reference/android/view/ViewGroup.html

ViewGroup은 child view를 가질 수 있기 때문에 getChildCount를 통해 child view의 갯수를 셀 수 있습니다.

다른 구현방법이 존재하겠지만 직관적으로 떠오르는 방법은 최상위 View를 읽으신 다음  재귀호출을 통해 view가  ViewGroup이면 차일드 뷰들을 읽어오는 형태로 구현하시면 될 것 같습니다.

View rootView = findViewById(root_view_id);
visitView(rootView);

private void visitView(View view) {
   if (view instanceof ViewGroup){
       ViewGroup group = (ViewGroup) view;
       for (int i=0; i<group.getChildCount(); i++) {
               View childView = group.getChildAt(int index);
               visitView(childView);   
       }
   } else {
        
   }
}

급하게 만든 로직이라 정확한지는 모르겠지만 비슷한 컨셉으로 하시면 되리라 생각합니다. 모발일에서는 가능하면 loop을 덜 사용하는 것이 배터리 소모도 적습니다. 더 좋은 방법이 있는지 한번 찾아보세요.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...