안드로이드 프로그래밍[JAVA Code]/선택 위젯

선택 위젯 : 스피너 : 기본 Array Adapter 설정

훈츠 2019. 12. 4. 20:38
반응형

스피너는 선택 위젯으로 다른 선택 위젯과 마찬가지로 Adapter 설정을 해줘야한다. 추가 적으로 스피너는 드랍 박스 식으로 누르면 해당 하는 아이템을 보여주고, 선택 하면 그 선택된 item 을 받을 수 있다. 다음 실습을 통해 스피너에 대한 기본 사용법 을 익혀 보자. 

1) XML 안에 스피너 넣기 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
   <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="43dp"
        android:scrollbarSize="20dp"/>
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginLeft="20dp"
        android:text="선택 : "
        android:textSize="20sp"/>
</LinearLayout>

2) MainActivity 에서 스피너 객체 선언 

   Spinner spinner;
   String [] items = {"소녀시대", "티아라","여자친구", "블랙핑크"};
   TextView textView;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );
    spinner = (Spinner) findViewById( R.id.spinner );
    textView = (TextView) findViewById( R.id.textView );

3) Array Adapter 설정 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            this,android.R.layout.simple_spinner_item, items
    );

4) Adapter 안에 view Resourese 정의 하고, adater set 할 것.

adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
spinner.setAdapter( adapter );

5) spinner 에 setOnItemSelectedListener 설정 

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( "선택 안됨" );
        }
    } );

6) 전체 코드 

public class MainActivity extends AppCompatActivity {
   Spinner spinner;
   String [] items = {"소녀시대", "티아라","여자친구", "블랙핑크"};
   TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_main );
    spinner = (Spinner) findViewById( R.id.spinner );
    textView = (TextView) findViewById( R.id.textView );

    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( "선택 안됨" );
        }
    } );

    }
}

7) 동작 확인 

 

 

반응형