Android
[Android] AutoCompleteTextView(자동완성 텍스트뷰)
jane.dev
2021. 10. 25. 19:55
반응형
AutoCompleteTextView
사용자가 입력하는동안 완료된 텍스트를 자동으로 보여줌
activity_main.xml
먼저 View를 정의
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center|top">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/acv"
android:hint="자동완성 검색창"
android:completionHint="선택하기"
android:completionThreshold="2" />
</LinearLayout>
android:completionHint
는 드롭다운 메뉴에 표시되는 힌트를 정의
android:completionThreshold
은 완료된 텍스트가 드롭다운 메뉴에 표시되기 전에 사용자가 입력해야하는 문자 수 정의
→ 2로 지정했기 때문에 두글자가 입력되어야 자동완성 텍스트가 메뉴에 표시됨
MainActivity.java
public class MainActivity extends AppCompatActivity {
AutoCompleteTextView acv;
MultiAutoCompleteTextView macv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
acv = (AutoCompleteTextView)findViewById(R.id.acv);
// 검색창에 띄울 아이템을 List로 나열
String [] items = {"android", "ios", "andrew", "rock and roll", "anniversary", "angel", "anxious", "ioniq", "iot", "ioi"};
// 위젯과 데이터를 연결하기 위해 어댑터라는 개념을 사용
// 파라미터 this와 simple_dropdown_item_1line은 고정, items를 넣어야하는 데이터에 맞춰 작성
ArrayAdapter<String> adp = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, items);
// setAdapter() 기능을 이용해 ArrayAdapter와 위젯 연결
acv.setAdapter(adp);
}
}
ArrayAdapter(Context context, int resource, List<T> objects)의
context는 해당 activity context를 뜻하는 this,
android.R.layout.simple_dropdown_item_1line은 문자열들을 보여주는 리스트 형식,
item에 담긴 리스트를 호출하여 보기를 생성하고 결과를 TextView에 배치