안드로이드에서 제공되는 위젯중 AutoCompleteTextView 라는 것이 있습니다.
사용자가 입력한 글자들에 기초해서 완성된 단어를 제시해주는 기능을 제공합니다.
개발자들이 미리 정해둔 단어들에 사용자가 입력한 단어들이 부합하면 그 단어들이 제시되면서 사용자들은 특정 단어를 선택함으로써
입력을 쉽게 마칠 수 있습니다.
activity_main.xml
xml 란에 보시면 android:completionThreshold="1" 이구문은 자동 완성 기능이 몇글자를 입력했을시 발생시킬지 정하는 부분으로써 "1"로 되있기 때문에 첫글자부터 입력하게 되면 기능이 시작됩니다. android:completionHint="목록에서 클릭하세요." 부분은 Hint라는 부분에서 느낄수 있듯이. 자동 완성 기능의 목록 아래에 표시되는 도움말과 같은 글을 입력할수 있는 구문입니다.
옵션은 나중에 밑에 부분에 더 설명 드리겠습니다.
MainActivity
static final String[] COUNTRIES = new String[] 구문은 앞서 말씀드린듯이 사용자들이 입력하는 단어들과, 개발자들이 미리 입력해놓은 단어들을 비교해서 관련이 있을경우 자동 완성란의 목록에 나오기 때문에, 이와같이 배열을 만들어서 미리 데이터들을 입력해 놓습니다. (물론 더 좋은 방법들도 많겠죠..)
OnItemClickListener 구문은 제가 자동완성 기능 실행시 해당 단어를 클릭할 경우 재대로 입력을 받아오는지 확인하기 위해 임의로 익명클래스를 만들었고 토스트로 해당 텍스트를 출력시켜보기 위해 만들었습니다. 파라미티 같은 경우에는 AdpaterView<?> parent 는 클릭된 뷰의 부모인 어댑터 뷰, View view는 사용자가 클릭한 뷰, int position은 선택된 뷰의 위치, long id는 선택된 항목이 리스트의 몇번째 위치, 정도로 보시면 될 것 같습니다.
AutoCompleteTextView 구문은 이제 앞서 xml에 생성한 AutoCompleteTextView 를 가져오고, 어댑터와 연결시킵니다. 파라미터를 보시면 android.R.layout.simple_dropdown_item_1line, 은 안드로이드에서 기본적으로 제공하는 드롭다운 형식의 레이아웃을 적용시키구 잇구요. 앞서 만들었던 배열 COUNTRIES 데이터들을 함께 넘겨줍니다. setOnItemClickListener은 앞서 만들었던 토스트를 위한 클릭 리스너를 연결해주는 부분입니다.
1. android:completionHint
setCompletionHint(CharSequence) : Defines the hint displayed in the drop down menu.
특성은 드롭다운 목록 아래에 표시될 도움말
2. android:completionHintView
Defines the hint view displayed in the drop down menu.
3. android:completionThreshold
setThreshold(int) : Defines the number of characters that the user must type before completion suggestions are displayed in a drop down menu.
자동 완성 드롭다운 목록이 언제 표시될 것인지 결정. 기본값은 2 (두 글자부터)
4. android:dropDownAnchor
setDropDownAnchor(int) : View to anchor the auto-complete dropdown to.
5. android:dropDownHeight
setDropDownHeight(int) : Specifies the basic width of the dropdown.
자동 완성 드롭다운 목록 높이
6. android:dropDownHorizontalOffset
Amount of pixels by which the drop down should be offset horizontally.
7. android:dropDownSelector
Selector in a drop down list.
8. android:dropDownVerticalOffset
Amount of pixels by which the drop down should be offset vertically.
9. android:dropDownWidth
setDropDownWidth(int) : Specifies the basic width of the dropdown.
자동 완성 드롭다운 목록 너비
10. android:popupBackground
setDropDownBackgroundResource(int)
'Android' 카테고리의 다른 글
안드로이드 임시 정리 (내가 모르는거) (0) | 2013.07.29 |
---|---|
[자동입력, 연관검색]2 MultiAutoCompleteTextView (1) | 2013.07.25 |
안드로이드 애니메이션 샘플 요약 (0) | 2013.07.19 |
[translate, alpha] 안드로이드 애니메이션 (0) | 2013.07.19 |
[Slide]슬라이드 뷰 플리퍼(ViewFlipper) (0) | 2013.07.18 |