안녕하세요..
안드 공부한지 이제 1달 된 개발자입니다.
요즘 TabActivity 내에서 ActivityGroup를 사용하여 이거저거 해보는데..액티비티그룹안에 액티비티에서 Spinner를 사용하는데..
계속 뻗어서 검색해보니 inflate를 사용하라고 하더군요..
그래서
//setContentView(R.layout.main);
View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.main, null);
this.setContentView(viewToLoad);
위 주석을 하고 아래 두줄로 썼더니 잘되더군요..
그런데 해결은 했지만 inflate를 언제 사용해아하는지 어떨때 써야하는지 개념이 안잡히네요..
조언 부탁드립니다..
xml은 디자인일 뿐이라서
이 디자인 된 걸 프로그램에 적용하려면
메모리에 올려야 해요.
VB나 이런 프로그램에서 버튼이나 텍스트박스..
이런 컴포넌트들이 다 미리 있죠?
그걸 마우스로 끌어다가 폼에 올리자나요.
왜냐하면 그것들은 미리 디자인 된 것이고 그걸 자기가 만들 응용프로그램에
올려서 사용을 해야하니까요.. 정확한 비유는 아닌 것 같아요.. 쓰고보니.. ^^;
자주 사용하시는 onCreate안에 setcontentView(R.layout.main) 이것도
디자인 된 main을 View에다가 inflate하는 거에요.
한마디로.. set... 디자인 만든 걸 세팅한다는 거죠.
저도 내공이 부족하여 설명이 미흡해요. ^0^;
inflate 라는 단어는 전개 라는 뜻인데요.
xml로 정의되어 있는 뷰나 레이아웃을 객체화 시키기 위해서 사용하는 메서드 입니다.\
setContentView 같은 경우에는 내부구현이 inflater를 사용하도록 되어 있어서 그냥 저렇게 써도 되지만
(액티비티 그룹에서는 안 됩니다.)
레이아웃에 뷰를 추가한다던가 할때는 꼭 xml로 정의된 뷰를 객체화 시켜서 사용해야 합니다.