🔹 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);
CommaTokenizer token = new CommaTokenizer();
mc.setTokenizer(token);
mc.setAdapter(AAd);
}
}