본문 바로가기
안드로이드 자바

[Android][JAVA]간단한 텍스트뷰 자동완성

by teamnova 2023. 5. 2.
728x90

안녕하세요 이번시간에는 검색 자동완성을 구현하는 간단한 자동완성 텍스트뷰 예제를 포스팅하겠습니다.


이 예제는 리스트뷰를 사용하여 검색어 추천 목록과 검색 결과 목록을 표시합니다.

먼저, activity_main.xml 파일을 다음과 같이 작성합니다
AutoCompleteTextView에 completionThreshold 속성을 1로 설정하여 사용자가 검색어를 입력하면 자동으로 추천 검색어를 표시하도록 합니다. ListView에는 검색 결과를 표시합니다.

 

activity_main.xml

<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Search:" />

    <AutoCompleteTextView
        android:id="@+id/searchView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="1" />

</LinearLayout>

 

다음으로, MainActivity.java 파일에서 AutoCompleteTextView와 ListView를 초기화합니다. 데이터는 문자열 배열에 저장되며, ArrayAdapter를 사용하여 데이터를 AutoCompleteTextView와 ListView에 바인딩합니다.

 

MainActivity.java

package com.example.autocompleteex;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity {
    private AutoCompleteTextView searchView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //listView = findViewById(R.id.listView);
        searchView = findViewById(R.id.searchView);
        // 검색어 추천 목록 데이터
        String[] data = {"Apple", "Banana", "Cherry", "Durian", "Elderberry", "Fig", "Grape", "Honeydew", "Kiwi", "Lemon", "Mango"};
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data);
        // 검색어 추천 목록 표시
        searchView.setAdapter(adapter);
    }
}

 

이것으로 다음과 같이 문자열이 입력되었을 때, 자동완성 기능을 구현해 봤습니다. 감사합니다.