코딩 일기장/Android(Kotlin)
Spinner 설정
minWachya
2022. 1. 25. 17:03
반응형
내가 Spinner 설정하는 방법 걍 정리
공식 문서
https://developer.android.com/guide/topics/ui/controls/spinner?hl=ko
방법1 xml에서 배열 추가
1, xml에 spinner 추가
<Spinner
android:id="@+id/spinnerSelectTime"
android:layout_width="match_parent"
android:layout_height="50dp"
android:spinnerMode="dropdown"
android:entries="@array/cat_add1_size_array" />
2, res>values에 배열 파일 추가
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="select_time_array">
<item>1분</item>
<item>5분</item>
<item>10분</item>
<item>20분</item>
<item>30분</item>
<item>40분</item>
<item>50분</item>
<item>1시간</item>
</string-array>
</resources>
3, 코드 작성
binding.spinnerSelectTime.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(p0: AdapterView<*>?) {}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
when(position) {
0 -> { Toast.makeText(applicationContext, "1분", Toast.LENGTH_SHORT).show() }
1 -> { Toast.makeText(applicationContext, "5분", Toast.LENGTH_SHORT).show() }
else -> { Toast.makeText(applicationContext, "다른 거", Toast.LENGTH_SHORT).show() }
}
}
}
방법2. 코드에서 배열 추가
1, xml에 spinner 추가
<Spinner
android:id="@+id/spinnerSelectTime"
android:layout_width="match_parent"
android:layout_height="50dp"
android:spinnerMode="dropdown" />
2, res>values에 배열 파일 추가
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="select_time_array">
<item>1분</item>
<item>5분</item>
<item>10분</item>
<item>20분</item>
<item>30분</item>
<item>40분</item>
<item>50분</item>
<item>1시간</item>
</string-array>
</resources>
3, 코드 작성
// 스피너 설정
// 배열 추가
val selectTimeSpinner = binding.spinnerSelectTime
ArrayAdapter.createFromResource(
this@SetAlarmActivity,
R.array.select_time_array,
android.R.layout.simple_dropdown_item_1line
).also { adapter ->
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
selectTimeSpinner.adapter = adapter
// 어댑터 추가
selectTimeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(p0: AdapterView<*>?) {}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
when(position) {
0 -> { Toast.makeText(applicationContext, "1분", Toast.LENGTH_SHORT).show() }
1 -> { Toast.makeText(applicationContext, "5분", Toast.LENGTH_SHORT).show() }
else -> { Toast.makeText(applicationContext, "다른 거", Toast.LENGTH_SHORT).show() }
}
}
}
}
반응형