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

특정 View들을 동시에 가져오려면??

0 추천
Table형식으로 10X10을 작성하고 각각 TextView를 넣는다고 가정하면

총 100의 TextView가 있을텐데...이중에 특정 TextView를 클릭했을때

특정 20개의 다른 TextView의 배경색을 바꾸려고 합니다.

id로 받아와서 바꾸면 되긴 하는데..20개 전부다 가져올수는 없고..

어떤식으로 가져오면 될까요?..

웹으로 구현할때는 동일하게 name을 주어서 name으로 배열을 가져와 작업했던 기억이나는데 안드로이드도 비슷한것이 있나요?
치솟음 (3,710 포인트) 님이 2015년 3월 31일 질문

2개의 답변

0 추천
 
채택된 답변

findViewsWithText 쓰시면 될 것 같네요

웹에서 name 주셨듯이 android:contentDescription에 이름주고 아래와 같이 해보세요

ArrayList<View> arr = new ArrayList<>();
v.findViewsWithText(arr, "xxxx", View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
for(View view : arr){
//처리
}

 

alkyne (22,960 포인트) 님이 2015년 3월 31일 답변
치솟음님이 2015년 6월 26일 채택됨
감사합니다! 해보겠습니다!
0 추천
aucd29 (218,390 포인트) 님이 2015년 3월 31일 답변
tablelayout으로 10x10만들고
하나의 Textview를 선택했을때  여러 TextView의 배경색을 바꾸려할때 위 속성을 사용하면 결국 여러 Child에 해당 속성을 다 true로 넣어줘야하는데 그과정에서 역시 일일히 여러 TextView를 다 가져와야 될거같은데...그럼 똑같은 현상 아닌가요? ㅠㅠ

예를 들어 100개의 셀중 20개씩 5개의 특정 값으로 묶어놓고
그 5개의 값으로  20개의 셀의 배경을 한번에 바꿀 방법이 없을까요?
5개의 값을 a,b,c,d,e로 주고

특정 셀을 클릭하면 분기하여 a로 묶인 20개의 배경색을 바꾸기도하고 b로 묶인 20개의 배경색을 바꾸기도하는 식으로요..
...