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

코드상에서 레이아웃 View을 타고 그 레이아웃속에 속해있는 자식뷰를 정의할수 있나요?

0 추천
다름이 아니라

 

MainLayout에다 코드상 만들어낸 ItemLayoutView를 메인 레이아웃에서 버튼을 누르면 추가 할수 있도록 만들었습니다.

 

ItemLayoutView를 만들었고 만든 방법과 구성요소는

구성 뷰

 

ItemLayoutView<리니어 레이아웃>

{

ImageView<이미지뷰>

TextView<텍스트뷰>

}

Java코드 상에서 만들어간 부분

ItemLayoutView 객체 생성 및 레이아웃 파람을 이용한 속성 지정

ImageView 객체 생성 및 레이아웃 파람을 이용한 속성지정 및 디폴트 이미지 지정

TextView 객체 생성 및 레이아웃 파람을 이용한 속성지정 및 디폴트 텍스트 지정

 

ItemLayoutView.addView(ImageView);

ItemLayoutView.addView(TextView); 로 ItemLayoutView레이아웃에 추가함으로  구성해 주었구요

 

ArrayList<리니어> array 생성 후 버튼을 누를때마다

Count=array.SIZE();

array.add(Count,ItemLayoutView); 리스트에 넣었구요 .

이 List를 이용해서

MainView.addView(array.get(Counter)); 이런식으로  뷰를 추가하였습니다.

 

문제는 ItemLayoutView에 들어있는 TextView와 ImageView 의 속성들을 변경해야하는데요 .

부모뷰를 통해서 자식뷰의 속성을 정의 할수 있는지 궁금합니다.
CJ여비 (5,810 포인트) 님이 2015년 3월 27일 질문

1개의 답변

+1 추천
 
채택된 답변
listview를 이용하여 구현이 안되는 상황인가요? 글만 보면 listview와 adapter을 이용하면 될것 같은데,,,

동적의로 생성한 자식뷰에 접근해서 처리하고 싶으시면 뷰 생성할때 setTag로 식별가능한 값을 넣고,

 

예)

for(int  i= 0; i<10; i++){

    Textview txtView = new TextView();

    txtView.setTag("txt" + Integer.toString(i));

   부모뷰.add(txtView);

}

 

//txtView 가져오기

private View getChidView(int key){

  for(i =0; i < 부모뷰.getChildCount(); i++)){

      View view = 부모뷰.getChildAt(i);

      if(((String)v.getTag).equal("txt" + Integer.toString(key)){

           return view;

      }

  }

  return null;

}

 

//

TextView tv_2 = (TextView)getChidView(2);
이드로이드 (22,930 포인트) 님이 2015년 3월 27일 답변
CJ여비님이 2015년 3월 27일 채택됨
답변감사드립니다 이드로이드님 ㅎ리스트뷰 형식이 아니라 메인에다 커스텀 레이아웃을 add 시켜서 정보를 저장하려고 하려고 해서요 ㅎ setTag 라는 함수는 처음 들어봤습니다 setTag 쪽으로 알아봐야겠네요 ㅎㅎ 감사드려요 ㅎㅎ
...