KOTLIN

코틀린(Kotlin) Spinner 사용하기

사과씨앗 2021. 1. 9. 22:37
728x90
반응형

안녕하세요 이번 글에서는 Spinner을 사용하여 보겠습니다.

 

Spinner은 웹에서의 셀렉트 박스라고 생각하시면 됩니다.

 

우선 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">


    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="217dp"
        android:text="TextView"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

그다음 MainActivity로 이동하여 코딩하여 줍시다.

 

 

package com.example.spinnerproject

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Spinner
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //Spinner 에 들어갈 데이터
        var data = listOf("- 선택하세요 - ","1월","2월","3월","4월","5월","6월")

        //데이터와 스피터를 연결 시켜줄 adapter를 만들어 준다.
        //ArrayAdapter의 두 번쨰 인자는 스피너 목록에 아이템을 그려줄 레이아웃을 지정하여 줍니다.
        var adapter = ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data)
        //activity_main에서 만들어 놓은 spinner에 adapter 연결하여 줍니다.
        spinner.adapter = adapter
        //데이터가 들어가 있는 spinner 에서 선택한 아이템을 가져옵니다.
        spinner.onItemSelectedListener = object:AdapterView.OnItemSelectedListener{


            override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
                //position은 선택한 아이템의 위치를 넘겨주는 인자입니다.
                result.text = data.get(position)
            }
            override fun onNothingSelected(parent: AdapterView<*>?) {

            }
        }

    }


}

이제 앱을 실행시켜 봅시다.

 

 

 

 

 

오늘도 봐주셔서 감사합니다.

728x90
반응형