본문 바로가기

프로그래밍/안드로이드

[안드로이드/Android] 안드로이드 스피너

안드로이드 스피너(Spinner)


읽기 전에 손가락 한번 꾸~욱 _(__)_ ♥

감사합니다.^^ ☞ ☜

java.lang.Object

└ android.view.View

└ android.view.ViewGroup

└ android.widget.AdapterView<T extends android.widget.Adapter>

└ android.widget.AbsSpinner

└ android.widget.Spinner


스피너란?

이게 딱 머다 라고 설명하기가 애매한데요. 안드로이드 공식 사이트 레퍼런스에 보시면 나와 있습니다. (영어로) 저의 짧은 실력으로 굳이 해석하자면


스피너는 한번에 하나의 아이템만 보여주며 사용자는 그것들 가운데 하나를 선택할 수 있다. 스피너에서 아이템들은 해당 스피너와 연결된 어댑터에서 온것 입니다.


역시 제가 해석하니 어색하내요.  그나마 좀 비슷한 녀석을 찾는다면 "콤보박스"와 비교할수 있겠네요.


그러면 이번에는 Spinner이 가지고 있는 속성에 대해 살펴보도록 하겠습니다.


xml 속성 이름 

자바 메소드 이름 

설명 

 android:gravity

 setGravity(int)

 선택된 항목의 정렬방법을 설정 합니다.

 android:prompt 

 

 스피너의 다이얼로그가 보여졌을때 상단 제목(프롬프트)의 문자열을 설정합니다.



그럼 일단 예제를 보면서 하나씩 살펴 보도록 하겠습니다. 우리가 살펴볼 녀석의 결과는 아래와 같습니다.




res/layout/main.xml


Linearlayout을 수직으로 정렬하게 만들고 그안에 TextView와 Spinner을 삽입 합니다.

스피너를 선택하면 아이템을 선택할 수 있는 다이얼로그가 뜨는데요. 그다이얼 로그의 제목창(프롬프트)를 설정(   )해 놓았습니다.


res/values/strings.xml


스피너에 보여줄 아이템은 xml파일로 작성하였습니다.

혹시 "이거 머야 " 싶으신 분들은 이전에 리스트뷰를 설명하면서 언급되어 있으니 가셔서 한번 주~욱 읽어보시면 이해가 되실겁니다.

☞ 리스트뷰 참고 http://jwandroid.tistory.com/230


JWAndroidSpinnerTest.java


여기는 설명할 것이 조금 있네요.

㉮ 어댑터 생성하기

리스트뷰와 동일하죠? 두번째 매개변수에 보여질 데이터를, 세번째 매개변수에다가 스피너의 레이아웃을 인자값으로 넘겨 줍니다.

두번째 매개변수와 관련된 것들은 이미 리스트뷰에서 설명했으니 넘어 가구요 (혹시 모르신다면  리스트뷰 보러가기 클릭 ) 세번째 매개변수만 보겠습니다. 여기에 넣을수 있는 값은 아래와 같이 2가지가 가능합니다.


레이아웃 리소스

설 명 

simple_spinner_item

문자열만 보여진다.

텍스트만 표시됨으로 현재 선택된 아이템을 알수가 없다.

다이얼로그에 적용시 해당 아이템의 높이가 낮아 터치가 힘들다.

 simple_spinner_dropdown_item

문자열과 라디오 버튼이 나타난다.
텍스트와 라이도 버튼이 함께 표시되어 선택된 아이템을 알수 있다.
다이얼로그에 적용시 해당 아이템의 높이가 넓어 터치가 쉽다.


㉯ 다이얼로그 화면 레이아웃 설정

setDropDownViewResource() 메소드는스피너를 눌렀을때 나타나는 팝업의 레이아웃을 설정할 수 있습니다.

위에서 언급한 2가지가 가능하니 위의 표를 참고 하시기 바랍니다.


㉰ 스피너 이벤트 설정

스피너의 다이얼로그안에 아이템을 선택했을때 또는 취소했을때 이벤트를 설정하는 부분입니다.

지금은 아래 작성한 코드가 실행되니 아래 코드를 참고 하시면 되겠습니다.


MyOnItemSelectedListener.java


① 항목이 선택 될때 - onItemSelected()

여기서는 간단히 선택한 아이템의 문자열을 토스트로 나타나게 만들었습니다.


② 항목이 선택 해제될 때  - onNothingSelected()

선택 해제될때는 특별히 표시할 게 없죠? 그래서 비워 두었습니다.


위의 파일들을 작성하셔서 실행하시면 위와 같은 결과가 나오게 됩니다. 우측에 역삼각형을 누르시면 선택 화면이 나오게 되죠.


언제든지 궁금하신 사항들은 댓글로 남겨주세요.^^