반응형





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


반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기