[안드로이드스튜디오] 자동완성기능

이제·2021년 6월 9일
0

🔹 AutoCompleteTextView, MultiAutoCompleteTextView - 자동완성을 지원하는, 텍스트뷰의 한 종류.

  • 사용자가 단어를 입력하는 와중에 미리 설정해놓은 완성 단어를 보여준다.
  • Multi~를 활용하면 쉼표로 구분해서 여러 단어를 자동완성하는 것이 가능 <<CommaTokenizer 사용
  • 자동완성에 사용하는 단어는 String[ ]에 저장 하고, ArrayAdapter를 이용해 등록함.
  • completionThreshold를 이용하여 자동완성에 필요한 글자 수를 조절함

💫 완성화면

💫 xml코드

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <AutoCompleteTextView
        android:id="@+id/et1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="2"
        ></AutoCompleteTextView>

    <MultiAutoCompleteTextView
        android:id="@+id/et2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="3"
        ></MultiAutoCompleteTextView>

</LinearLayout>

💫 java코드

package com.example.w12_completetext;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView.CommaTokenizer;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String[] list = {"CcCc1", "CcCc2", "CcCc3", "CcCc4", "CcCc5",
        "Ccdc1", "CcbC1", "Ccdc2", "Ccdc3", "Ccdc4"};

        ArrayAdapter AAd = new ArrayAdapter(MainActivity.this,
                android.R.layout.simple_list_item_1, list);

        AutoCompleteTextView at = (AutoCompleteTextView) findViewById(R.id.et1);
        at.setAdapter(AAd);

        MultiAutoCompleteTextView mc = (MultiAutoCompleteTextView) findViewById(R.id.et2);

        //쉼표를 기준으로 현재 입력하고 있는 애들을 나눠주는 역할 "Token"
        CommaTokenizer token = new CommaTokenizer();
        mc.setTokenizer(token);

        mc.setAdapter(AAd);
    }
}
profile
알아가는 맛

0개의 댓글