와챠의 우당탕탕 코딩 일기장
Spinner 설정 본문
반응형
내가 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() }
}
}
}
}
반응형
'코딩 일기장 > Android(Kotlin)' 카테고리의 다른 글
[Android/Kotlin]코루틴(Coroutine) 정리 (0) | 2022.02.07 |
---|---|
갤러리에서 가져온 이미지가 회전되어져 있을 때(ExifInterface) (0) | 2022.01.31 |
Android 12 Splash + 앱 시작 시간 공부 (2) | 2022.01.24 |
[Android/Kotlin] recyclerview drag and drop/swipe 기능 만들기 (10) | 2021.08.26 |
[안드로이드] draggable(movable), clickable view 만들기/onTouch, onClick Listener 동시에 달기(밀리의 서재의 그것) (0) | 2021.08.16 |
Comments