프로그래밍/Android2011. 8. 22. 13:53

AutoCompleteTextVew에서 입력한 글자와 유사한 단어를 표시하는 모습



AutoCompleteTextView의 외형은 EditText와 유사하나, 두 글자 이상 입력하면 미리 지정된 단어 목록 중 입력한 글자와 유사한 단어를 리스트 형태로 표시합니다.

AutoCompleteTextView와 단어 목록을 연결하기 위해, 레이아웃을 지정해주는 어댑터(Adapter)를 사용합니다. 어댑터는 처리하는 데이터의 유형에 따라 ArrayAdapter, CusorAdapter 등 여러 종류가 있습니다.

public ArrayAdapter (Context context, int textViewResourceId, T[] object)

새로운 ArrayAdapter를 생성합니다. objects에 원본 데이터를 지정하고, textViewResorceId에는 표시될 레이아웃의 리소스를 지정합니다.

어댑터의 생성자에서는 리스트에 표시할 원본 데이터와 리스트의 레이아웃을 지정합니다.

simple_dropdown_item_1line 레이아웃의 모습


마지막으로는 setAdapter() 메서드를 사용하여 AutoCompleteTextView에 어댑터를 연결합니다.


코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class AutoCompleteExample extends Activity {
    private AutoCompleteTextView autoComplete;
    private ArrayList<String> list;
    private ArrayAdapter<String> adapter;
     
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        autoComplete = (AutoCompleteTextView)findViewById(R.id.autoComplete);
        list = new ArrayList<String>();
         
        list.add("Android");
        list.add("Andromeda");
        list.add("Breezy Badger");
        list.add("Cupcake");
        list.add("Donut");
        list.add("Dapper Drake");
        list.add("Edge Eft");
        list.add("Eclair");
        list.add("Froyo");
        list.add("Gusty Gibbon");
        list.add("Hoary Hedgehog");
        list.add("Hardy Heron");
        list.add("Intrepid ibex");
        list.add("Karmic Koala");
    
        adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, list);
         
        autoComplete.setAdapter(adapter);
    }
}



출처 - 기초부터 다지는 커니의 안드로이드






'프로그래밍 > Android' 카테고리의 다른 글

Toast(토스트)  (0) 2011.08.22
ListView - 리스트뷰  (0) 2011.08.22
DatePicker, TimePicker  (0) 2011.08.22
ProgressBar, SeekBar, RaingBar  (0) 2011.08.19
RadioButton, CheckBox  (0) 2011.08.19
Posted by 건깡