[안드로이드 기초] 체크박스(CheckBox)
안드로이드 체크박스(CheckBox) |
■ 체크박스는 지난번에 봤던 토글버튼 처럼 선택 여부를 보여주는 버튼이구요. 예제 프로젝트를 만들어 가면서 하나씩 살펴보도록 하겠습니다.
■ 먼저 상속관계를 살펴보겠습니다.
■ 프로젝트를 하나 생성합니다.
■ 위와 같이 main.xml에 텍스트와 CheckBox를 배치하고 매인 액티비티에서 체크상자에 대한 이벤트를 설정하도록 하겠습니다. 체크박스를 선택하면 아래쪽 선택결과에 선택한 내용이 출력되게 할겁니다.
■ 그리고 선택결과 부분이 둥근 사각형인데요. 이거 만드는 것부터 먼저 알아보고 넘어가도록 할게요. 먼저 res폴더에 새로운 폴더를 하나 만들고 [drawable]로 했구요. 그 폴더안에 새로운 "안드로이드xml" 파일을 생성합니다.
■ 다음과 같은 창이 나타나면 파일 이름을 "round_box"로 하고 아래쪽에서 "shape"를 선택하고 "Finish"를 선택합니다.
■ 그러면 이런 화면이 나타나게 되는데요 박스친 부분을 추가해서 적어줍니다.
■ 색깔 지정하는것과 [radius]는 모서리의 둥근정도를 표현하는 겁니다. 숫자를 바꿔가면서 원하는 형태로 바꾸면 됩니다. main.xml파일을 살펴보도록 하겠습니다.
■ 마지막 텍스트 뷰를 보면 위에서 만든 라운드박스를 배경으로 삽입을 했습니다. 그리고 기본 문자열인 "선택결과"를 출력했습니다. 나중에 이 문자열 부분에 선택한 체크상자의 내용을 표기하게 될겁니다. 실행 결과를 보면서 소스 내용과 비교해보겠습니다.
■ 이제 매인 액티비티 파일에서 이벤트 처리를 구현하겠습니다.
■ 그림처럼 클릭한 체크박스에 따라서 printChecked()메서드를 실행하도록 이벤트를 추가했습니다. 아직 printChecked()메서드를 만들지 않아서 에러가 떠있는데요. 바로 메서드를 만들도록 하겠습니다.
■ CheckBox 두개를 아이디 값으로 찾아서 'ch1', 'ch2'라는 객체에 담았구요. 문자열을 기록할 객체 'resultText'를 선언하고 공백으로 초기화를 했습니다. 그리고 첫번째 체크상자를 선택할 경우 여기에 출력되고 있는 문자열을 resultText에 대힙하고 만약에 두번째 상자를 선택했을때 먼저 선택한 값이 있다면 ","를 출력하고 이어서 두번째 상자의 내용을 출력합니다. 마지막으로 세번째의 텍스트 뷰를 아이디값으로 찾아서 여기에 resultText를 출력하라는 내용입니다.
■ 실행을 해보도록 하겠습니다.
■ 두가지를 모두 선택한 상황입니다. 출력결과에 선택결과가 출력이 됩니다. 하나만 선택하면 그 내용만 출력이 됩니다.