와챠의 우당탕탕 코딩 일기장

[Android/Kotlin]Spinner hint/Spinner underline 본문

코딩 일기장/Android(Kotlin)

[Android/Kotlin]Spinner hint/Spinner underline

minWachya 2022. 2. 18. 11:00
반응형

아래 화면은 '동네 고영희' 앱 UI입니다!!!

 

결과 화면

추정 나이 스피너 클릭 전: 밑줄, hint
추정 나이 스피너 클릭 후: hint 제외 아이템 배열만 확인 가능


스피너 밑줄 만들기:

아래 코드를 xml에서 spinner에 추가해주면 됨

style="@style/Widget.AppCompat.Spinner.Underlined"

 

스피너에 힌트 만들기:

1, 배열의 맨 마지막에 hint를 넣고

2, 스피너 아이템의 갯수에서 -1을 리턴하게 한 후에

3, hint를 스피너의 초기값으로 지정해주면 된다.

그러면 위의 사진과 같이 마지막 아이템이 hint처럼 보이게 된다.

 

1, res>values>spinner_array.xml에 스피너 배열 추가!

이때 hint도 배열의 맨 마지막에 넣어주어야 한다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!--추정 나이 스피너 배열-->
    <string-array name="cat_add2_age_array">
        <item>1살 미만</item>
        <item>2살</item>
        <item>3살</item>
        <item>4살</item>
        <item>5살 이상</item>
        <item>모름</item>
        <item>고양이 나이 선택</item>  <!--hint-->
    </string-array>
</resources>

 

2, 스피너의 아이템 갯수가 -1이 되도록 설정한다.

3, 스피너의 초기값을 hint로 지정하는 것도 함께 했다.

// 추정 나이 선택 스피너 설정
val ageSpinner = binding.ageSpinner	// spinner
val ageArray = resources.getStringArray(R.array.cat_add2_age_array)	// 배열
setSpinner(ageSpinner, ageArray)	// 스피너 설정
// 스피너 설정
private fun setSpinner(spinner: Spinner, array: Array<String>) {
    val adapter = object : ArrayAdapter<String>(
        requireContext(),
        android.R.layout.simple_dropdown_item_1line
    ) { override fun getCount(): Int =  super.getCount() - 1 }  // array에서 hint 안 보이게 하기
    adapter.addAll(array.toMutableList())   // 배열 추가
    spinner.adapter = adapter               // 어댑터 달기
    spinner.setSelection(adapter.count)     // 스피너 초기값=hint
}

 

반응형
Comments