Android AutoCompleteTextView 예제 자습서
AutocompleteTextView는 사용자가 Android 앱에 입력하는 동안 완성 제안을 자동으로 표시하는 편집 가능한 텍스트 보기입니다. 이 튜토리얼에서는 제안 목록을 정의하기 위해 ArrayAdapter
를 사용하여 애플리케이션에서 Android AutoCompleteTextView를 구현합니다.
Android AutoCompleteTextView 개요
AutoCompleteTextView는 편집 가능한 텍스트 필드에 작성하는 동안 제안을 표시하는 데 사용되는 구성 요소입니다. 제안 목록은 사용자가 원하는 항목을 선택할 수 있는 드롭다운 메뉴에 표시됩니다. 제안 목록은 어댑터에서 가져오며 임계값에 지정된 문자 수 뒤에만 나타납니다. AutoCompleteThreshold 필드를 사용하려면 다음과 같이 xml 레이아웃에 정의해야 합니다.
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="65dp"
android:ems="10" >
참고: android:ems 또는 setEms(x)는 실제 텍스트 확장자와 텍스트 크기에 관계없이 x 'M' 글자 수의 텍스트에 맞도록 TextView의 너비를 설정합니다. 자동 완성 목록의 몇 가지 중요한 방법은 다음과 같습니다.
- getAdapter() : 이 메서드는 자동 완성에 사용되는 필터링 가능한 목록 어댑터를 반환합니다.
- getCompletionHint() : 이 메서드는 일치하는 목록의 하단에 표시되는 선택적 힌트 텍스트를 반환합니다.
- getDropDownAnchor() : 이 메서드는 자동 완성 드롭다운 목록이 첨부된 뷰의 ID를 반환합니다.
- getListSelection() : 이 메서드는 드롭다운 보기 선택 항목이 있는 경우 해당 위치를 반환합니다.
- isPopupShowing() : 이 메서드는 팝업 메뉴가 표시되는지 여부를 나타냅니다.
- setText(CharSequence text, boolean filter) : 이 메서드는 필터링을 비활성화할 수 있다는 점을 제외하고 텍스트를 설정합니다.
- showDropDown() : 이 메서드는 화면에 드롭다운을 표시합니다.
setAdapter 메소드는 autoCompleteTextView의 어댑터를 설정하는 데 사용됩니다. 그것의 코딩 부분으로 이동합시다.
Android AutoCompleteTextView 프로젝트 구조

Android AutoCompleteTextView 예제 코드
MainActivity의 레이아웃은 다음과 같이 정의됩니다. activity_main.xml
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="15dp"
android:text="Name a fruit from (Apple Banana Cherry Date Grape Kiwi Mango Pear)" />
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView"
android:layout_marginLeft="36dp"
android:layout_marginTop="17dp"
android:ems="10"
android:text="">
<requestFocus />
</AutoCompleteTextView>
</RelativeLayout>
MainActivity.java는 아래에 정의되어 있습니다.
package com.journaldev.autocomplete;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class MainActivity extends Activity {
String[] fruits = {"Apple", "Banana", "Cherry", "Date", "Grape", "Kiwi", "Mango", "Pear"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Creating the instance of ArrayAdapter containing list of fruit names
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this, android.R.layout.select_dialog_item, fruits);
//Getting the instance of AutoCompleteTextView
AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
actv.setThreshold(1);//will start working from first character
actv.setAdapter(adapter);//setting the adapter data into the AutoCompleteTextView
actv.setTextColor(Color.RED);
}
}

Android AutoCompleteTextView 프로젝트 다운로드