반응형
AutoCompleteTextView
- 사용자 입력을 받는 EditText 기능에 자동완성 기능을 추가한 View
- 개발자가 설정해놓은 자동완성 문자열 항목 리스트를 제공해도 되고, 사용자가 그동안 입력했던 문자열을 모두 저장해놓고 자동완성 리스트로 제공해도 됨
- 문자열을 입력하다가 자동완성 리스트에 존재하는 문자열과 같은 문자열이 나오면 리스트 나옴
AutoCompleteTextView 주요 메소드
- setAdapter : Adapter를 메서드를 통해 설정 -> getter만 제공하고 있어서 setAdapter 메소드를 이용 (그동안은 주로 프로퍼티로 설정)
val adapter1 = ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, data1)
//autoCompleteTextview 에서 사용하는 기본 레이아웃
binding.autoCompleteTextView.setAdapter(adapter1)
AutoCompleteTextView 주요 프로퍼티
- text : 사용자가 입력한 문자열
AutoCompleteTextView 주요 속성
- completionThreshold : 몇 글자를 입력했을 때 자동완성 리스트가 나타날지 설정 ex). 자동완성 리스트에 banana가 있지만 theshold가 2면 'b' 를 입력하는 것으로 리스트 나타나지 않음. 최소 'ba'는 쳐야 나옴 (0 입력 : 처음부터 리스트가 나오는것은 아니지만 문자열을 입력했다가 전체 삭제 했을 때 리스트 전체가 나옴)
** 아래 메서드는 해당 코드로 경우에 따라 제대로 작동하지 않음 **
AutoCompleteTextView 주요 이벤트
- ItemClick : 제공되는 자동완성 리스트의 항목을 클릭할 경우 발생 (오버라이딩할 메소드 1개라 고차함수로 작성 가능)
// 고차함수로 작성
binding.autoCompleteTextView.setOnItemClickListener { adapterView, view, i, l ->
binding.textView2.text = "${data1[i]} 항목을 클릭"
}
binding.autoCompleteTextView.setOnItemClickListener(listener1)
} //OnCreate() 끝
val listener1 = object : AdapterView.OnItemClickListener {
override fun onItemClick(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
binding.textView2.text = "${data1[p2]} 항목을 클릭"
/*
when (p0?.id) { // p0 으로 선택한 뷰가 들어오질 않아 동작 x
R.id.autoCompleteTextView -> {
binding.textView2.text = "${data1[p2]} 항목을 클릭"
}
}
*/
}
}
[메서드 및 코드 사용 주의 -> 첨부 포스트 참고]
https://studyroadmap-kkm.tistory.com/76
반응형
'Android' 카테고리의 다른 글
[안드로이드/AdapterView] SingleChoiceListView (0) | 2023.02.28 |
---|---|
[안드로이드/AdapterView] MultiAutoCompleteTextView (0) | 2023.02.27 |
[안드로이드/AdapterView] ViewPager (0) | 2023.02.25 |
[안드로이드/AdapterView] Spinner (0) | 2023.02.24 |
[안드로이드/AdapterView] Custom Adapter (0) | 2023.02.23 |