상세 컨텐츠

본문 제목

[Andorid] AutoCompleteTextView

Android 개발

by mobile 2011. 7. 30. 18:16

본문

반응형
자동 완성 텍스트 뷰는 사용자 입력을 자동으로 완성해주는 텍스트뷰(TextView)이다.
▷ 한개 단어 완성

[예제 - 실행 화면]
  
[그림 1]                                                        [그림 2]

//main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <AutoCompleteTextView 

    android:id="@+id/edit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:completionHint="pick a item"

android:completionThreshold="2"

    />

</LinearLayout> 


 android:completionHint="pick a item"
: 화면에 보여줄 예약 문자열 하단에 표시될 문자열이다.

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

//AutoCompleteTextViewActivity.java

import android.app.*;

import android.os.*;

import android.widget.*;


public class AutoCompleteTextViewActivity extends Activity {

String[] items = {"SM3","SM5","SM7","SONATA","AVANTE","SOUL","K5","K7"};

    /** Called when the activity is first created. */

    @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는 화면에 보여질 문자열들을 가지고 있는 문자열 이다.

위와 유사한 MultiAutoCompleteTextView [그림 2]로 변경하여 구현하면 아래와 같다.
여러개의 단어 완성이 가능하며, 토크나이저 설정(쉼표로 단어를 구분)이 필요하다. 

//main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <MultiAutoCompleteTextView

    android:id="@+id/edit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:completionHint="pick a item"

android:completionThreshold="2"

    />

</LinearLayout> 


import android.app.*;

import android.os.*;

import android.widget.*;


public class AutoCompleteTextViewActivity extends Activity {

String[] items = {"SM3","SM5","SM7","SONATA","AVANTE","SOUL","K5","K7"};

    /** Called when the activity is first created. */

    @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)

        );

        */

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

        edit.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

        edit.setAdapter(new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, items)

);

       

    }

}


반응형

관련글 더보기

댓글 영역