[Android&Kotlin] Spinner 만들기 (아이템 선택 박스 만들기)

2023. 9. 10. 21:13Android

안드로이드 comileSdk 버전: 33
안드로이드 minSdk 버전: 24

※ 실행 화면 ※


XML 파일

디자인

activity_main.xml

코드

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="24dp"
        android:text="Spinner 예제"
        android:textSize="30dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="250dp"
        android:layout_height="24dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/text" />

</androidx.constraintlayout.widget.ConstraintLayout>

Activity 파일

package com.example.exampleofspinner

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.Toast

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Spinner에 사용될 아이템 리스트 생성
        val exampleList = listOf("사과", "멜론", "수박", "딸기")

        // Spinner에 들어갈 리스트를 관리할 어뎁터 생성
        val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, exampleList)
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
        val getSpinner = findViewById<Spinner>(R.id.spinner)
        // Spinner에 adpater 등록
        getSpinner.adapter = adapter

        // 사용자가 선택할 아이템 저장할 변수 선언
        var userPick = "";

        // 사용자가 아이템을 선택할 경우 어떤 액션을 취할지 결정
        getSpinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener{
            override fun onItemSelected(parent: AdapterView<*>?, view: View?, pos: Int, id: Long) {
                userPick = exampleList[pos]
                Toast.makeText(this@MainActivity,"user pick! $userPick", Toast.LENGTH_SHORT).show();
            }
            override fun onNothingSelected(parent: AdapterView<*>?) {
                Log.d("Warning", "Nothing Selected")
            }
        }
    }
}