티스토리 뷰

Android

스피너 spinner 예시

varyeun 2020. 3. 29. 20:22

MainActivity.java

package com.example.myspinner;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import java.lang.*;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {
    TextView textView;
    String[] items = {"안","드","로","이","드"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView)findViewById(R.id.textView);

        Spinner spinner = (Spinner)findViewById(R.id.spinner);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                this, android.R.layout.simple_spinner_item, items
        );
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                textView.setText(items[position]);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                textView.setText("선택 : ");
            }
        });
    }
}

 

 

- 스피너에 들어가는 각 아이템은 복잡한 레이아웃을 사용하지 않고 텍스트뷰 하나만 보여주는 경우가 많다.

- <Spinner>태그를 이용해 XML 레이아웃에 추가하고 어댑터 객체를 만들어 설정한다.

- android.R.layout.simple.spinner_item은 하나의 아이템을 위해 미리 만들어진 레이아웃이며, 스피너는 항목을 선택하기 위한 창이 별도로 있기 때문에 setDropDownViewResource 메소드를 이용해 별도 창에 보이는 각 아이템을 위한 레이아웃을 별도로 설정한다.

댓글