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

ContentView를 동적으로 가져 오는 방법이 있을까요?

0 추천
Activity에서 setContentView() 가 있는데

getContentView()는 없네요.

 

layout의 id를 알 수 없는 상황에서

실행 중에 현재의 ContentView를 얻어서

동적으로 TextView를 추가하려고 합니다.

 

실행 중에 ContentView를 얻는 방법은 무엇일까요?
지능도시 (280 포인트) 님이 2013년 6월 7일 질문

1개의 답변

0 추천
addContentView를 사용하면 현재ContetView를 모르더라도 화면에 붙일 수 있습니다.
congbab (5,140 포인트) 님이 2013년 6월 7일 답변
댓글 감사합니다.
기존에 있는 ContentView에 View를 끼워넣으려고 하는데
방법을 아직 못 찾겠네요.
contentView에 껴넣는 방법은 findViewById 사용하는 수 밖에 없을거같아요. 레이아웃안에 뷰 id값을 모른다면 최상위 부모 뷰를 안다고해도 붙일 수 있는 방법이 없습니다.
만약에 최상위 뷰그룹을 구하더라도 addView를 한다면 그 뷰그룹이 liner인지 frame인지 Relative인지 모르고 layoutHeight나 layoutWidth가 어떻게 되어있는지도 모르기때문에 뷰를 추가할 경우 어떻게 들어갈지 알수도 없습니다.
한마디로 최상위뷰를 알아낸다고해서 할수있는게 없기때문에 구할수 있는 함수가 없는거같네요.
댓글 감사합니다.
View를 얻은 것이 LinearLayout인지는 instanceof를 사용하여
아래의 코드와 같이 사용할 수 있을 듯 합니다.  

View layout = // getCurrentContentView();
if (layout instanceof LinearLayout)
{
   LinearLayout linear = (LinearLayout) layout;
   linear.addView( myNewView );
}
...