CS/Android(Java & Kotlin)
Android Studio - 4. 스피너
bonggang
2020. 6. 15. 00:23
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