상세 컨텐츠

본문 제목

[안드로이드 코틀린] 자동완성 텍스트뷰 쉽게 만드는 방법

안드로이드

by aries574 2022. 7. 10. 10:41

본문


이번 시간에는 입력한 텍스트와 비슷한 글자를 보여줘서 자동 완성 수 있는 기능을 알아보겠습니다.


목차

1. 실행 화면
2. 메인 화면 구현 activity_main.xml
3. 메인 코드 구현 MainActivity.kt


1. 실행 화면


2. 메인 화면 구현 activity_main.xml

- 설명 -

1. 텍스트 자동 완성해주는 MultiAutoCompleteTextView

2. 입력된 텍스트 보여주는 Button

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">

    <MultiAutoCompleteTextView
        android:id="@+id/multi_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:completionThreshold="1"
        android:hint="단어를 입력하세요"/>

    <Button
        android:id="@+id/select_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/multi_text"
        android:layout_centerHorizontal="true"
        android:text="선택한 단어는"/>
</RelativeLayout>

 


3. 메인 코드 구현 MainActivity.kt

- 설명 -

1. ArrayAdapter(this,
           android.R.layout.simple_list_item_1, word)

데이터와 화면을 연결해주는 Adapter

2. multiText.setAdapter(adapter)

Adapter을 자동완성텍스트뷰에 적용

3. MultiAutoCompleteTextView.CommaTokenizer()

다중 데이터를 콤마로 분류해준다.

4. input.split(",")

콤마를 기준으로 잘라준다.

class MainActivity : AppCompatActivity(){

    //단어집
    private val word = arrayOf("Apple", "Air", "Angel","Boy",
        "Book", "Bear")

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

        val multiText: MultiAutoCompleteTextView = findViewById(R.id.multi_text)

        //Adapter 생성
        val adapter: ArrayAdapter<String> = ArrayAdapter(this,
            android.R.layout.simple_list_item_1, word)

        //Adapter 적용
        multiText.setAdapter(adapter)

        //콤마 처리
        multiText.setTokenizer(MultiAutoCompleteTextView.CommaTokenizer())

        //선택한 단어 보여주는 이벤트
        val selectBtn: Button = findViewById(R.id.select_btn)
        selectBtn.setOnClickListener {

            //입력단어 변수에 담기
            val input: String = multiText.text.toString().trim()

            //콤마를 기준으로 잘라서 배열에 담기
            var singleInputs: List<String> = input.split(",")

            //메시지로 보여줄 변수
            var toastText = ""

            //변수에 선택한 값 담기( index: 순서 0 ~ 1.2.3. , item: 값
            for((index, item) in singleInputs.withIndex()){

                //값이 비워있지 않다면
                if(item.isNotEmpty()){
                    toastText += "Item $index : $item \n"
                }
            }

            Toast.makeText(this, toastText, Toast.LENGTH_SHORT).show()
        }

    }//onCreate
}

2022.07.05 - [안드로이드] - [안드로이드 코틀린] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법

 

[안드로이드 코틀린] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법

이번 시간에는 다이얼로그(Dialog) 리스트(List)로 보여주는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 리스트 데이터 만들기 string.xml 3. 메인 화면 구현 activity_main.xml 4. 메인 ..

aries574.tistory.com

2022.06.17 - [안드로이드] - [안드로이드 코틀린] 정해진 시간에 알람 울리는 방법 Notification TimePickerDialog part1 - 설정

 

[안드로이드 코틀린] 정해진 시간에 알람 울리는 방법 Notification TimePickerDialog part1 - 설정

사용자가 정한 시간에 알람이 울리게 하는 방법에 대하여 알아보겠습니다. 이번 시간에는 알람 관련 클래스와 설정들을 만들어 보겠습니다. 목차 1. 알람 클래스 만들기 NotificationHelper.kt 2. 

aries574.tistory.com

2022.06.14 - [안드로이드] - [안드로이드 코틀린] Tab Custom Animation part1 - 화면 구성 및 설정

 

[안드로이드 코틀린] Tab Custom Animation part1 - 화면 구성 및 설정

앞으로 TabLayout을 직접 만들어 애니메이션 기능까지 넣어보도록 하겠습니다. 이번 시간에는 화면 구성 및 설정을 만들어 보겠습니다. 목차 1. 실행 화면 2. dataBinding 설정 build.gradle 3. 테마 변경 t

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역