본문 바로가기
안드로이드/AdapterView

안드로이드 Spinner

by 김어찐 2022. 6. 7.
728x90

사용자에게 항목을 주고 산택 하게 할 수 있는 AdapterView
작은 스마트폰 화면을 효율적으로 사용할 수 있다는 장점을 가지고 있다.

 

주요 속성

spinnerMode : 나타나는 메뉴 항목의 타입을 설정한다.

 

주요 프로퍼티

selectedItemPosition : 현재 선택되어 있는 항목이 인덱스(0 부터 시작)를 관리한다.
adapter : View 구성을 위한 Adapter를 관리한다.
onItemSelectedListener : 항목을 선택했을 때 사용할 리스너를 설정한다.

 

주요 이벤트

ItemSelected : 사용자가 항목을 선택했을 경우. 이 이벤트의 리스너는 프로퍼티로 설정한다.

 

package com.example.spinner

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

class MainActivity : AppCompatActivity() {

    val data1 = arrayOf("항목1","항목2","항목3","항목4","항목5")


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

        // 어뎁터를 생성한다. 접혔을 떄의 모습을 구성할 layout을 설정한다.
        val adapter1 = ArrayAdapter(this,android.R.layout.simple_spinner_item,data1)

        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)

        spinner.adapter=adapter1

        button.setOnClickListener {
            textView.text = "선택한 항목${data1[spinner.selectedItemPosition]}"
        }

        spinner.onItemSelectedListener = listener1
    }

    val listener1 = object : AdapterView.OnItemSelectedListener {
        override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
            when (parent?.id) {
                R.id.spinner ->{
                    textView.text = "${data1[position]} 값 선택"
                }
            }
        }

        override fun onNothingSelected(parent: AdapterView<*>?) {

        }
    }

}

 

728x90

'안드로이드 > AdapterView' 카테고리의 다른 글

안드로이드 ViewPager  (0) 2022.06.07
안드로이드 GridView  (0) 2022.06.07
안드로이드 CustomAdapter  (0) 2022.06.07
안드로이드 Custom ListView 2  (0) 2022.06.07
안드로이드 Custom ListView1  (0) 2022.06.06