프로그래밍/Kotlin
[코틀린/안드로이드] Spinner 사용하기 (simple_list_item_1, Adapter)
pupu91
2022. 10. 24. 18:09
반응형
activity_main.xml
viewBinding 설정
MainActitity.kt
class MainActivity : AppCompatActivity() {
val binding by lazy { ActivityMainBinding.inflate(layoutInflater)}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
/* 스피너의 아이템에 보여 줄 텍스트를 배열 형태로 만든다.*/
var data = listOf("선택하세요", "1월", "2월", "3월", "4월","5월", "6월")
/* 생성한 배열 목록을 스피너 목록으로 추가하기 위해서는 Adapter를 이용해야 한다.
simple_list_item_1은 기본적으로 제공하고 있는 스피너용 레이아웃 이다.
어댑터에서 사용하면 입력 된 데이터에서 문자열 1개를 꺼내서 레이아웃에 그려준다.
어댑터는 레이아웃과 데이터를 연결해주는 역할을 하며, 레이아웃별로 다른 형태의 목록을 출력할 수 있다.*/
var adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data)
/* 생성한 어댑터를 스피너 뷰에 연결한다.*/
binding.spinner.adapter = adapter
/* 스피너의 아이템이 선택 될 때 동작할 이벤트 리스너 연결 */
binding.spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onItemSelected(adapterView: AdapterView<*>?,
view: View?, position: Int, id: Long) {
/* position으로 selected된 아이템의 인덱스 값을 확인할 수 있다.*/
binding.result.text = data[position]
//position : 선택한 값이 몇번째인지, 데이터에 있는 포지션을 기준으로 가져오기.
//get말고 인덱스 연산자로 가져오기
}
}
}
실행 결과
반응형