반응형
1. Spinner를 XML파일에 추가시켜줍니다.
ex ) activity_main.XML 에 Spinner(콤보박스)를 만들고 싶으면 activity_main.XML에 추가를 해줍니다.
여기서 현재 Spinner의 ID값은 spinner입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:weightSum="1"> <Spinner android:layout_width="150dp" android:layout_height="wrap_content" android:id="@+id/spinner" /> </LinearLayout> | cs |
2. 프로젝트의 res -> values 에 xml파일을 만들고 다음과 같은 형식으로 작성해줍니다.
사용할 Array name 은 location으로 정했습니다.
item은 스피너에 들어갈 항목들을 나타내줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version="1.0" encoding="utf-8"?> <resources> <!-- array의 이름은 location 입니다.--> <string-array name="location"> <item>서울시</item> <item>인천시</item> <item>대전시</item> <item>부산시</item> <item>제주시</item> </string-array> </resources> | cs |
3. JAVA파일로 넘어가서 onCreate 항목에 Spinner를 초기화 시켜줍니다.
그 다음 ArrayAdapter를 만들어서 아래 코드와 같이 작성을 해줍니다. (CustomAdapter를 사용하는 것이 아니기 때문에 기본 Android에서 제공하는 것으로 사용)
Adapter를 만든 후 Spinner에 연결합니다.
Spinner의 이벤트가 있어야 하므로 이벤트리스너를 걸어줍니다.
여기서 중요한게 setOnItemSelected를 선택하셔야 합니다. OnItemClick이 아니에요 ~
컴파일 해보시면 스피너가 나타납니다.
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 | @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner Main_spinner = (Spinner)findViewById(R.id.spinner); //스피너 어댑터 설정 ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.sort,android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Main_spinner.setAdapter(adapter); //스피너 이벤트 발생 Main_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //각 항목 클릭시 포지션값을 토스트에 띄운다. Toast.makeText(getApplicationContext(), Integer.toString(position), Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } | cs |
반응형
최근댓글