AutoCompleteTextView

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

EditText 속성에 자동완성 기능을 추가한뷰

몇 글자를 입력했을때 보여줄지를 지정하는 속성, 리스트형태로 보여줄 문자열이 미리 정의되어있어야함

<?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>

completionHint : 문자열 리스트 하단에 표시할 문자열

completionThreshold : 입력한 글자가 몇 글자일때 문자열 리스트를 보여줄지 지정

 

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를 사용해서 .java 에 설정

android.R.layout.simple_dropdown_item_1line : 문자열을 보여주는 리스트 모양

 

-----

MultiAutoCompleteTextView

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

여러개의 단어 완성

토크나이저 설정필요(쉼표로 단어구분)

<MultiAutoCompleteTextView
    android:id="@+id/edit"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:completionHint="pick an item"
    android:completionThreshold="2" />
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.MultiAutoCompleteTextView;

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

        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));
    }
}

CommaTokenizer : 쉼표로 구분, 다른문자로 구분하고자한다면 만들어야함

 

+ Recent posts