스피너는 보통 콤보박스라고 불리는 위젯입니다.
한 항목 당 글자 하나만을 보여주는 경우가 많고 가끔 이미지와 글자가 함께 보이거나 여러 개의 글자가 보이기도 합니다.
여러 개의 항목 중에서 하나를 선택하는 방식은 앞에서 만들어보았던 리스트뷰와 같습니다.
즉, 선택 위젯에 해당하며 어댑터를 사용해서 만들게 됩니다.
그런데 한 아이템으로 보이는 것이 텍스트 하나인데도 각각의 아이템을 위한 뷰를 별도로 만들어야 할까요?
한 아이템이 텍스트 하나인 경우를 위해 좀 더 간단한 방식을 사용할 수 있습니다.
스피너를 어떻게 만들어 사용하는지 알아봅시다.
스피너 (Spinner)
스피너를 위해 SDK에서 미리 제공하는 레이아웃이 있습니다. 각 아이템을 위한 레이아웃을 미리 만들어둔 것이죠.
그런데 스피너는 이미 선택된 아이템이 보이는 뷰와 아이템을 선택하기 위해 보이는 뷰가 서로 다릅니다.
따라서 두 개의 뷰가 있어야 합니다.
이를 위해 setDropDownResource라는 메소드를 이용해 아이템을 선택하기 위해 보이는 뷰의 레이아웃을 설정해줍니다.
SDK에서 미리 만들어 제공하는 레이아웃을 사용하면 몇 줄의 코드만으로도 스피너를 만들 수 있습니다.
스피너 만들기
스피너는 <Spinner> 태그를 이용해 XML 레이아웃에 추가하고 어댑터 객체를 만들어 설정합니다.
스피너에 들어가는 각 아이템은 복잡한 레이아웃을 사용하지 않고 텍스트뷰 하나만 보여주는 경우가 많아서 안드로이드 SDK에서 미리 제공하는 XML 레이아웃을 그대로 사용할 수 있습니다.
ArrayAdapter는 아이템을 위한 여러 개의 데이터를 담아두기 위해 미리 만들어진 것이며 android.R.layout.simple_spinner_item 은 하나의 아이템을 위해 미리 만들어진 레이아웃입니다.
다만 스피너는 항목을 선택하기 위한 창이 별도로 있기 때문에 setDropDownViewResource 메소드를 이용해 별도 창에 보이는 각 아이템을 위한 레이아웃을 별도로 설정합니다.
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
'안드로이드 개발 > 부스트코스(안드로이드 프로그래밍)' 카테고리의 다른 글
화면 구성과 화면 간 전환 (0) | 2019.03.08 |
---|---|
그리드뷰 (0) | 2019.03.06 |
리스트뷰 (0) | 2019.03.05 |
인플레이션 이해하기 (0) | 2019.03.05 |
비트맵 버튼 만들기 (0) | 2019.03.05 |
최근댓글