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