No img

Spinner는 값 집합에서 하나의 값을 선택할 수 있도록 만들어주는 드롭다운 리스트다.

Spinner 객체를 사용하기 위해서는 XML 레이아웃에 Spinner 요소를 추가해줘야 한다.

 

<Spinner
    android:id="@+id/spinner_id"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

 

스피너 리스트에 목록을 등록하기 위해 values - strings.xml에 string array를 작성해줬다.

<string-array name="spinnerItem">
        <item>item1</item>
        <item>item2</item>
        <item>item3</item>
        <item>item4</item>
    </string-array>

 

이제 마지막으로 Spinner를 등록하자. 선택 항목 목록으로 Spinner를 채우려면 Activity 또는 Fragment 소스 코드에 SpinnerAdapter를 지정해야 한다.

val spinner: Spinner = findViewById(R.id.spinner_id)

ArrayAdapter.createFromResource(
        this,
        R.array.planets_array,
        android.R.layout.simple_spinner_item
).also { adapter ->
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    spinner.adapter = adapter
}

 

여기까지만 작성해도 기본 형태는 잡힌다.

하지만 디자인을 위해 스피너를 등록하는 것보다는 그 기능을 활용하기 위해 스피너를 쓰는 것일테니 사용자가 선택한 값을 가져오는 기능 역시 구현해야한다.

 

spinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener{
            override fun onNothingSelected(parent: AdapterView<*>?) {
                TODO("Not yet implemented")
            }

            override fun onItemSelected(parent: AdapterView<*>?, view: View?,  position: Int, id: Long
            ) {
                Log.d("test", "onItemSelected: $position, ${spinner.getItemAtPosition(position)}")
            }
        }

 

 

 

참고 자료

https://developer.android.com/guide/topics/ui/controls/spinner

 

Spinner  |  Android 개발자  |  Android Developers

Spinner는 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공합니다. 기본 상태의 Spinner는 현재 선택된 값을 표시합니다. Spinner를 터치하면 기타 모든 사용 가능한 값을 포함하는 드롭다운

developer.android.com