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

Spinner 설정 본문

코딩 일기장/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() }
                    }
                }
            }
        }
반응형
Comments