0610_android
2 개 이상의 위젯을 모아서 새로운 위젯으로..
다음과 같은 위젯이 반복해서 필요하다면?
자바 소스코드 안에서 CHILD 넣듯이..
APPENDCHILD 하는 거 처럼..
자바 코드에서 Class 만들고.. 레이아웃에 Widget 넣고 하는 거 ..
단점: xml 상의 레이아웃으로 확인할 수 없고, 실행시에만 확인할 수 있다.
공통점은 뽑아서 class로 만들고 차이점은 parameter로 받으면 된다.
클래스의 getter & setter도 좋지만, textview
위젯 내부에 다른 녀석을 포함하는 것 : 뷰 그룹
준비할 것
1. 색상 : res/values/colors.xml
2. 문자열 : res/values/strings.xml
3. 디자인_스타일 : res/values/styles.xml
4. 레이아웃 : res/layout/widget_radio_box.xml
5. Radio Button 리스트에 사용할 선택항목이 필요하다.. resourcce_array
6. Custom Attribute를 추가한다. : res/values 경로에서 새로 생성 attrs.xml
why? 레이아웃 파일에서 속성으로 resource를 지정해주면 편한데,, resource를 지정할 attribute가 없기 때문..
android 급격한 버전 업이 있을 수 있다....
그럴 때 보안 코드 등.. 때문에 잘 되던 앱이 안될 수 있음..
android native 로 짜면 한번 짜고 갈아 엎을 생각 해둬야 함..
Attribute란?
android xml 에 속성을 지정해 주는 것.
but 현재 RadioBox에 라디오 버튼 리스트가 필요한데 레이아웃 xml 파일에서 속성으로 resource를 지정해서 java 클래스에서 해당 array 에 맞도록 RadioButton을 알아서 radioGroup에 추가해 줬으면 좋겠다.
attribute 설계
res/values/attrs.xml 에 box 라는 이름과 각 항목의 이름을 기억해 둬야 한다.
지금까지 준비 한 모든 것을 구현 할 RadioBox 클래스를 생성
1. widget 패키지 추가
2. widget 패키지 안에 RadioBox 클래스 추가 > SuperClass 는 CardView
3. 생성 후 생성자 3가지를 추가 해 둠
4. 라디오 그룹 리스너도 추가