Spinner

  • 사용자에게 항목을 주고 선택하게 할 수 있는 AdapterView

  • 작은 스마트폰 화면을 효율적으로 사용할 수 있다는 장점을 가지고 있다.


주요 메서드

  • getSelectedItemPosition : 현재 선택되어 있는 항목의 인덱스 번호를 반환한다

리스너

  • OnItemSelectedListener : 스피너에서 항목을 선택했을 때 반응하는 리스너

- Spinner는 여러 항목을 제공하고 항목을 선택할 수 있도록 하는 AdapterView이다.

- 작은 스마트폰 화면을 효율적으로 사용할 수 있다는 장점을 가지고 있다.

package com.androidbasic.a18spinner;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


    //스피너 구성을 위한 문자열 배열
    String [] data1 = {
            "스피너1","스피너2","스피너3","스피너4","스피너5","스피너6","스피너7","스피너8","스피너9","스피너10","스피너11"
    };

    //뷰의 주소값을 담을 참조변수
    Spinner spinner;
    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,data1);
        //드롭다운으로 나타나는 항목 리스트의 뷰
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // 어뎁터를 스피너에 적용한다.
        spinner.setAdapter(adapter);

        //리스너 세팅
        SpinnerListener spinnerListener = new SpinnerListener();
        spinner.setOnItemSelectedListener(spinnerListener);
    }
    public void btnMethod(View view){
        int index = spinner.getSelectedItemPosition();
        textView.setText("선택된 항목 : " + data1[index]);
    }

    class SpinnerListener implements AdapterView.OnItemSelectedListener{
        @Override
        //사용자가 항목을 선택했을때 호출되는 메서드
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            textView.setText(data1[position]);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    }
}

실습 Git

profile
긍정적인 개발자를 꿈꾸는 김태환입니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN