액티비티에 붙여져 있는 View 를 구하는 방법 3가지에 대해
소개하고자 한다.
1. View 객체에 미리 담는 방법.
View view = getLayoutInflator.from(this).inflate(R.layout.main_activity,null);
setContentView(view);
윗 방법은 View 객체에 미리 view의 정보를 담은 후,
참조하고 싶을때 view라는 변수를 통해서 참조 하면 된다.
2. findViewById를 이용하여 View 객체에 담는 방법.
setContentView(R.layout.main_activity,null);
View view = findViewById(R.id.rootView);
윗 방법은 main_activity.xml 안에 최상위 부모뷰에
id를 rootView로 선언 한 뒤, 사용하면 된다.
위와 똑같이 view로 넣었지만 혹, ViewGrop으로 사용하고 싶을시,
다운캐스팅을 해준다. 아래의 예제를 보자.
ex) 뷰그룹으로 받고 싶을시,
ViewGroup viewGroup = (ViewGroup)findViewById(R.id.rootView);
ex) 부모뷰가 특정 ViewGroup일시 - FrameLayout
FrameLayout frameLayout = (FrameLayout)findViewById(R.id.rootView);
3. Activity의 context 정보로 구하는 방법
View view = context.getWindow().getDecorView() ;
윗 방법은 Activity의 context로 액티비티에 붙여져 있는 view를 구하는 방법이다.
이것 역시 ViewGroup 또는 특정 ViewGroup으로 받고 싶을때는 다운캐스팅 해준다.
아래의 예제를 보자.
ex) 뷰그룹으로 받고 싶을시,
ViewGroup viewGroup = ((ViewGroup)context.getWindow().getDecorView()) ;
ex) 부모뷰가 특정 ViewGroup일시 - FrameLayout
FrameLayout frameLayout = ((FrameLayout)context.getWindow().getDecorView()) ;
'Android' 카테고리의 다른 글
안드로이드 WebView(웹뷰) 사용하기. (0) | 2016.05.12 |
---|---|
안드로이드 SQLiteDB를 사용해보자. (2) (0) | 2016.04.21 |
안드로이드 AsyncTask 사용하기. (3) | 2016.04.12 |
안드로이드 Toolbar 적용하기 (1) | 2016.04.01 |
안드로이드 getColor, ContextCompat (1) | 2016.03.03 |
포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.