EditText to AutoCompleteTextView

By | 2021년 11월 4일
Table of Contents

EditText to AutoCompleteTextView

참조

참조

EditText 를 AutoCompleteTextView 로 바꿔 본다.
의외로 간단해서 놀랐다.

EditText

                <EditText
                    android:id="@+id/editTextSearchBox"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:autofillHints=""
                    android:background="@drawable/search_box"
                    android:ems="10"
                    android:hint="@string/search_text"
                    android:inputType="text"
                    android:minHeight="40dp"
                    android:textSize="15sp"
                    android:paddingStart="10dp"
                    android:paddingEnd="10dp"
                    android:layout_marginEnd="10dp"
                    android:textColor="#FFFFFF"
                    android:textColorHint="#AAAAAA" />

search_box.xml

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

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:thickness="0dp">
    <stroke android:width="2dp" android:color="#FFFFFF"/>
    <corners android:radius="8dp"/>
    <solid android:color="@null"/>
</shape>

AutoCompleteTextView

AutoCompleteTextView 는 EditText 를 상속하기에,
아무 소스 수정없이 모든 기능들이 정상 작동한다.

                <AutoCompleteTextView
                    android:id="@+id/editTextSearchBox"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:autofillHints=""
                    android:background="@drawable/search_box"
                    android:ems="10"
                    android:hint="@string/search_text"
                    android:inputType="text"
                    android:minHeight="40dp"
                    android:textSize="15sp"
                    android:paddingStart="10dp"
                    android:paddingEnd="10dp"
                    android:layout_marginEnd="10dp"
                    android:textColor="#FFFFFF"
                    android:textColorHint="#AAAAAA" />

속성추가

                <AutoCompleteTextView
                    android:id="@+id/editTextSearchBox"
                    // ......
                    android:completionThreshold="1"
                    // ......
                    android:textColorHint="#AAAAAA" />

아래 코드만으로 모든 기능이 정상 작동한다.

public class MainActivity extends AppCompatActivity {

    AutoCompleteTextView searchBox;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        searchBox       = findViewById(R.id.editTextSearchBox);

        List<String> list = new ArrayList<>();

        list.add("김치");
        list.add("김치찌개");
        list.add("부대김치찌개");

        searchBox.setAdapter(new ArrayAdapter<>(this,
                android.R.layout.simple_dropdown_item_1line, list));
    }
}

답글 남기기