자동완성 텍스트뷰(AutoCompleteTextView)

참고 프로젝트: AutoCompleteTextViewDemoA1

자동완성 텍스트뷰는 사용자 입력을 자동으로 완성해주는 텍스트뷰(TextView)이다. 이름이 텍스트뷰이기는 하지만 실제 속성은 에디트텍스트(EditText)에 더 가깝다.

  • 한 개 단어 완성

AutoCompleteTextView는 EditText 속성에 자동완성 기능을 추가한 뷰이다. 그래서 다음과 같은 상속 구조를 가진다.

java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.EditText
        ↳ android.widget.AutoCompleteTextView

다음은 자동완성 텍스트뷰를 실행한 화면이다. "sm"을 입력하면 "sm"으로 시작하는 단어를 리스트 형태로 보여준다. 이렇게 동작하기 위해서는 몇 글자를 입력했을 때 보여줄지를 지정하는 속성과 리스트 형태로 보여줄 문자열이 미리 정의되어 있어야 한다.


그림 3-9

다음은 레이아웃 XML 파일인 main.xml에 자동완성 텍스트뷰를 선언한 것이다.

코드 AutoCompleteTextView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <AutoCompleteTextView
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionHint="pick an item"
        android:completionThreshold="2" />

</LinearLayout>

android:completionHint="pick an item"
문자열 리스트 하단에 표시할 문자열이다.

android:completionThreshold="2"
사용자가 입력한 글자가 몇 글자일 때 문자열 리스트를 보여줄지를 지정하는 속성이다.

사용자가 문자열 입력 시 자동으로 보여줄 문자열들은 ArrayAdapter를 사용해서 자동완성 텍스트뷰에 설정해야 한다. 다음은 이러한 코드를 보여준다.

코드 Main.java

package com.androidside.autocompletetextviewdemoa1;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class Main extends Activity {
    String[] items = { "SM3", "SM5", "SM7", "SONATA", "AVANTE", "SOUL", "K5",
            "K7" };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        AutoCompleteTextView edit = (AutoCompleteTextView) findViewById(R.id.edit);

        edit.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, items));
    }
}

ArrayAdapter의 android.R.layout.simple_dropdown_item_1line는 문자열들을 보여주는 리스트 모양이며, items는 화면에 보여질 문자열들을 가지고 있는 문자열 배열이다.

자동완성 텍스트뷰와 관련된 속성을 살펴보고 싶다면 다음 링크를 참고하기 바란다.
URL http://www.androidside.com/docs/reference/android/widget/AutoCompleteTextView.html

results matching ""

    No results matching ""