728x90
Spinner를 사용하여 여러 Item중 하나를 선택하는 기능을 구현해보자.
아래 이미지 처럼 콤보박스형태의 컨트롤을 클릭하면
이렇게 여려아이템 중 하나를 선택할 수 있도록 dropdown이 되도록 만들어 보자.
우선, 해당 기능을 구현할 XML Layout에 아래와 같이 Component를 추가해준다.
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/spn_SPList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="30dp"
android:spinnerMode="dropdown"
android:popupBackground="#2540FF" />
만일, dropdown기능이 아니라 dialog 처럼 사용할 경우 spinnerMode 옵션을 아래와 같이 변경해 주면 된다.
android:spinnerMode="dialog"
이후 Item을 추가할 xml을 res/values/ 폴더 밑에 xml을 아래와 같이 생성해 주면 된다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="resources이름">
<item>아이템1</item>
<item>아이템2</item>
<item>아이템3</item>
<item>아이템4</item>
</string-array>
</resources>
여기까지 만들어 주면 이제 소스단에서 아래와 같이 순서대로 코드를 넣어주면 된다.
먼저, Spinner의 component를 찾아와 잡아주고,
Spinner spn = (Spinner) findViewById(R.id.spn);
다음 Spinner의 Adapter를 만들어 적용 시켜준다.
spn_adapter = ArrayAdapter.createFromResource(getActivity(), //Activity일 경우 this로
R.array.[item을 만들어둔 Array xml의 resources이름],
android.R.layout.simple_spinner_item);
spn_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn.setAdapter(spn_adapter);
createFromResource의 2번째 parameter는 아까 아이템 리스트를 만들어 둔 xml 내용중
<string-array name="resources이름"> 태그부분에 기록한 [resources이름]을 넣어준다.
Spinner를 클릭하였을 때 사용할 Listener를 아래와 같이 만들어 준다.
spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String a = spn.getItem(i).toString();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
Spinner에서 아이템하나를 선택할 경우 위 코드의 Listener안에 onItemSelected Method를 타게 되고,
[spn.getItem(i).toString(); ] 를 사용하여 선택한 아이템의 명칭을 받아와서 이후 동작을 하거나
다른 액션을 할때 참조 할 수 있도록 사용하면 될 것이다.
728x90
'Programing > android' 카테고리의 다른 글
[android studio] 일출 일몰 가져오기 (0) | 2021.10.17 |
---|---|
[android studio] 일자를 이용하여 요일 구하기 (0) | 2021.10.15 |
[android studio] DatePickerDialog로 일자달력 사용하기 (0) | 2021.10.11 |
[android studio] Geocoder 이용하여 위도, 경도 이용하여 주소가져오기 (0) | 2021.10.09 |
[android studio] 한국 양력 음력 변환하기 (0) | 2021.10.08 |
댓글