안드로이드/AdapterView

안드로이드 AutoCompleteTextView

김어찐 2022. 6. 7. 16:40
728x90

EditText에 자동완성 기능을 추가한 View 이다.
사용자가 문자열을 입력하면 설정한 문자열 항목을 통해 자동완성 리스트를 제공한다.

 

주요 속성

completionThreshold : 몇 글자를 입력했을 때 자동완성 리스트가 나타날지 설정한다.

 

주요 메서드

setAdapter : AutoCompleteTextView는 Adapter를 메서드를 통해 설정한다.

주요 프로퍼티

text : 사용자가 입력한 문자열 값

 

주요 이벤트

ItemClick : 제공되는 자동완성 리스트의 항목을 클릭할 경우 발생한다.

 

package com.example.autocompletetextview

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(
        "abcd","ddfd","asdfa","dfasq","sdafq","dasfa","dfs"
    )
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val adapter1 = ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,data1)

        autoCompleteTextView.setAdapter(adapter1)

        button.setOnClickListener {
            textView.text = autoCompleteTextView.text
        }

//        autoCompleteTextView.setOnItemClickListener(listener1)
        autoCompleteTextView.setOnItemClickListener { parent, view, position, id ->
            textView2.text="${data1[position]} 항목을 클릭했습니다."
        }


    }
    val listener1 = object : AdapterView.OnItemClickListener{
        override fun onItemClick(
            parent: AdapterView<*>?,
            view: View?,
            position: Int,
            id: Long
        ) {
            textView2.text="${data1[position]} 항목을 클릭했습니다."
            // parent?.id 못받아옴 이유 모름
//            when (parent?.id) {
//                R.id.autoCompleteTextView ->{
//                    textView2.text="${data1[position]} 항목을 클릭했습니다."
//                }
//            }
        }
    }
}

728x90