너무도 상식적인 질문인데, 상식적인거라 관련한 글을 인터넷에서 찾을 수가 없어서 이렇게 문의 드립니다.
일반 윈도우용 어플리케이션을 개발하다가 안드로이드로 취미로 막 넘어와서 기본개념이 부족해서 질문드립니다.
국내 관련 서적들을 여러권 보아도 대부분,
뷰의 레이아웃을 전개해서 ViewGroup(하위 클래스포함) 에 addView 할때 대부분 액티비티의 onCreate 에서 처리하더라고요?
인터넷에 관련자료를 보아도 대부분 그렇게 하는듯 보이고요.
웃긴거는 안드로이드 서적 4권을 봤는데도;;
"안드로이드 프로그래밍정복" 책포함 ㅡㅡ onCreate 에서만 addView 하고...
다른곳에서 하는 예제는 전혀 안보이네요. 다른곳에서 가능하다는 이야기는 당현히 없고요 ㅠ_ㅜ
지금와서 "안드로이드 풀소스 보니까 가능할꺼 같은데 ㅠ_ㅜ"
옛날에...
스레드에서 액티비티 핸들러로 요청하하거나, 리스너에서 동적으로 전개해서 addView 할수는 없을까 해서 못모르고 시도해 보았다가.
에러가 나는걸 보고 아~ addView 는 액티비티가 화면에 보이기 전인 onCreate 에서 밖에 못하나 보다;;
라고 개인적으로 단정 지어 버렸는데.
덕분에 액티비티 초기화 후에 동적으로 추가되는 뷰는 다 어댑터뷰만 이용하게 되었습니다;; (리스트뷰와 갤러리 등의...)
그런데 요새 어떤분의
http://jeehun.egloos.com/4049034
글을 보니 리스너에서 동적으로 뷰를 생성해서 LinearLayout에 addView 하더라고요?
ㅡㅡ" 가능한 이야기 입니까? 같은 메인스레드 내라면??
저는 지금까지 어댑터뷰가 아닌 뷰들은 오로지 onCreate 에서 밖에 addView 못하는줄 알았거든요. 쿨럭~
가능하다면 위에 글에 나온 소스(글하단에 있음)처럼, 기본 레이아웃으로 스크롤뷰에 LinearLayout 넣고,
리스너에서 동적으로 new 혹은 전개해서 addView 로 LinearLayout에 뷰를 넣는식으로,
나만의 간단한 리스트뷰도 만들 수 있고... 하겠죠??
훔훔... 내용은 길었지만 요약하자면 한줄입니다.
"ViewGroup(하위 클래스포함) 에 addView 할때 대부분 액티비티의 onCreate 에서만 하던데, 그외에 onCreate 이후에 액티비가 화면에 보여진후에, 핸들러나 리스너를 이용해서 버튼클릭시 같은 동작에. 같은 액티비티 메인스레드 내라면 addView 가능할까요 하는겁니다. LinearLayout 같은 뷰에"
ps. 가능하다면 이렇게 추가할때 주의해야 될점도 부탁드립니다. ㅠ_ㅜ 팁이라도~
공지사항 읽었습니다. 관련된 글은 모두 검색해 보았는데 딱히 이런 기초적인 개념 내용은 없길래 문의 드립니다 ㅠ_ㅜ




예, 가능합니다. 제 어플에서 스티커라는 클래스 생성자에 Context 와 FrameLayout 을 받아
addView를 넣어 OnCreate가 아닌 다른 상황에서 이를 사용하고 있습니다. FrameLayout이 아닌
다른 Layout에서는 어떻게 될 지는 자세히 모르겠으나 FrameLayout에서는 가능합니다.