자동 완성 기능은 사용자가 입력한 정보를 바탕으로 가능한 옵션을 제시하여 입력 과정을 간소화하는 기능입니다. Android에서는 이 기능을 구현하기 위해
AutoCompleteTextView와 MultiAutoCompleteTextView를 사용합니다. 전자는 단일 항목에 대한 자동 완성을 제공하며, 후자는 여러 항목에 대한 자동 완성을 지원합니다.
레이아웃 파일:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<AutoCompleteTextView
android:id="@+id/autoText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="이름을 입력하세요:"
android:textColor="#000"
android:maxLength="10"
/>
<MultiAutoCompleteTextView
android:id="@+id/multiAutoText"
android:layout_below="@id/autoText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="도시를 입력하세요:"
android:textColor="#000"
android:maxLength="20"
/>
</RelativeLayout>
액티비티 코드:
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
public class MainActivity extends Activity {
private AutoCompleteTextView autoText;
private MultiAutoCompleteTextView multiAutoText;
private String[] suggestions1 = {"김치", "김밥", "갈비", "고기", "과일"};
private String[] suggestions2 = {"서울", "부산", "대구", "인천", "광주"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autoText = findViewById(R.id.autoText);
multiAutoText = findViewById(R.id.multiAutoText);
ArrayAdapter<String> adapter1 = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, suggestions1);
autoText.setAdapter(adapter1);
ArrayAdapter<String> adapter2 = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, suggestions2);
multiAutoText.setAdapter(adapter2);
multiAutoText.setThreshold(1);
multiAutoText.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
이 코드는 기본적인 자동 완성 기능을 구현하는 방법을 보여줍니다. 주석을 통해 이해를 돕도록 하였습니다.