코틀린으로 작성한 안드로이드 Spinner 에 대하여 알아보기
오늘은 안드로이드 컨테이너에서 있는 spinner에 대하여 알아보려 합니다.
상속
class Activity : BaseActivity() , AdapterView.OnItemSelectedListener{
우선 상속을 받고,
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
}
override fun onNothingSelected(p0: AdapterView<*>?) {
}
상속받은 클래스에서 구현해야 되는 메소드들을 구현할 준비를 합니다.
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
bind.editText.setText(timeSpinnerList[p2])
}
override fun onNothingSelected(p0: AdapterView<*>?) {
}
그리고 아이템이 선택되었을 때에 하는 행동을 구현해줍니다.
spinner 컨테이너 생성
<Spinner
android:id="@+id/simple_spinner_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
spinner 구현
var spinnerList = ArrayList<String>()
spinnerList.add(value.toString())
우선 문자열 타입의 ArrayList를 만듭니다.
만든 ArrayList에 원하는 값을 넣어줍니다.
var spinner: Spinner? = null
spinner 타입의 변수를 null로 초기화해줍니다.
val arrayAdapter = ArrayAdapter(this@Activity, android.R.layout.simple_spinner_item, spinnerList)
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
ArrayAdapter를 만들어주어 아까 만든 ArrayList를 넣어줍니다.
spinner = this.bind.datePickSpinner
spinner!!.onItemSelectedListener = this
spinner!!.adapter = arrayAdapter
아까 만든 spinner에 bind된 레이아웃 id를 넣어주고, 이 spinner에 ArrayAdapter를 넣어줍니다.
Written on July 13, 2018