[Android][Kotlin] Spinner, NumberPicker
Spinner
리스트에서 하나의 값을 선택해야해서 스피너 구조를 사용하려했다.
아래의 사진과 같이 도르륵 움직이는 아이폰 스타일의 스피너를 예상했다.
안드로이드에서 Spinner
안드로이드에서의 스피너는 드롭다운 형태로 생긴 이런 구조를 말한다.
xml에 Spinner을 넣어주고
<Spinner
android:id="@+id/birth_spinner_userinfo"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@+id/textView26"
app:layout_constraintEnd_toEndOf="@+id/radioGroup"
app:layout_constraintStart_toStartOf="@+id/radioGroup"
app:layout_constraintTop_toTopOf="@+id/textView26" />
코드에서는 이렇게 짜줬다.
val agelist = Array(100, {i -> i+1900})
birth_spinner_userinfo.adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, agelist)
birth_spinner_userinfo.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(p0: AdapterView<*>?) {
println("선택해주세요")
}
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, position: Int, p3: Long) {
println("${position+1900}")
}
}
이 스피너로 태어난 해를 고르게 할 목적이기 때문에 agelist는 1900~2000으로 채워줬다.
(숫자는 numberPicker을 사용하는게 아무래도 더 편한것같다는 생각을..)
에뮬레이터가 작아서 화면에 튀어나오게 보이지만 실제 휴대폰으로 테스트해봤을때 이상하지 않은 모양으로 나왔다.
NumberPicker 구현하기
물론 안드로이드에서도 위의 아이폰 스타일의 스피너를 구현할 수 있다. NumberPicker을 커스텀해서 사용하면 된다.
사용 방법은 전에 작성한 포스팅에 정리해놨다.
[Android][Kotlin] NumberPicker로 custom datePickerDialog 만들기
안드로이드 기본 datePicker를 사용하려다가 1. 디자인이 마음에 들지 않는다 2. 연/월 만 필요하다 라는 이유로 numberPicker을 활용해 커스텀 datePicker을 만들었다. 안드로이드 기본 datePickerDialog 소스..
yuuj.tistory.com
+ bottom sheet 추가하기
참고한 포스팅
developer.android.com/guide/topics/ui/controls/spinner?hl=ko
스피너 | Android 개발자 | Android Developers
스피너는 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공합니다. 기본 상태의 스피너는 현재 선택된 값을 표시합니다. 스피너를 터치하면 기타 모든 사용 가능한 값을 포함하는 드롭
developer.android.com
bite-sized-learning.tistory.com/214
[2020 안드로이드 스튜디오] 스피너 (spinner) 사용 예제
[ 2020 안드로이드 스튜디오 ] 스피너 (spinner) 사용 예제 Android Studio Version 3.6.3 사용언어 JAVA 스피너를 사용하면 선택하기 전 View1과 선택하는 중 View2가 있습니다. 하지만 SDK에서 미리 만..
bite-sized-learning.tistory.com