반응형
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말고 인덱스 연산자로 가져오기
}
}
}
실행 결과
반응형
'프로그래밍 > Kotlin' 카테고리의 다른 글
[코틀린/안드로이드] CustomAdapter 활용하여 RecyclerView 사용하기 (0) | 2022.10.24 |
---|---|
[코틀린/안드로이드] Intent를 활용하여 Activity 전환하기 (0) | 2022.10.24 |
[코틀린 / Kotlin] 컬렉션 Set , Map (mutableSetOf() , Pair) (0) | 2022.10.20 |
[코틀린 / Kotlin] 컬렉션 _ List (add, remove, removeAt, contains, listOf ...) (0) | 2022.10.20 |
[코틀린 / Kotlin] 상속과 오버라이딩 (0) | 2022.10.20 |