기본 형태의 Spinner 구현
1. res -> values -> array.xml 생성
Spinner에 넣을 array를 xml 파일로 생성한다.
<resources>
<string-array name="fruite_kind">
<item>선택</item>
<item>사과</item>
<item>바나나</item>
<item>딸기</item>
</string-array>
</resources>
2. layout에 Spinner 넣기
Spinner를 넣어서 보여줄 화면(layout)에 Spinner를 넣어준다.
<Spinner
android:id="@+id/sp_fruite"
android:layout_width="match_parent"
android:layout_height="30dp"
android:spinnerMode="dropdown"/>
3. Spinner item layout 생성
Spinner를 클릭해서 값을 띄울 때 쓸 item layout을 하나 만든다. ConstraintLayout 또는 LinearLayout 없이 그냥 TextView 하나만 들어가면 된다.
res -> layout -> spinner_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:textSize="15sp">
</TextView>
4. Spinner가 들어 간 layout과 연결된 Java class 파일에 Spinner 선언 및 setAdapter
ArrayAdapter를 이용하여 객체 생성. Spinner에 setAdapter 한다.
//Spinner 선언
Spinner testSpinner = (Spinner)findViewById(R.id.sp_fruite);
//xml에 만들어둔 array.xml값을 불러와 String[], 또는 List로 만들기
//String 배열의 경우
String[] kinds1 = getResources().getStringArray(R.array.fruite_kind);
//List의 경우
List<String> kinds2 = Arrays.asList(getResources().getStringArray(R.array.fruite_kind));
//ArryaAdapter 객체 생성. 여기서는 List로 만든걸로 써 봄
ArrayAdapter adapter = new ArrayAdapter(getBaseContext(),R.layout.spinner_item,kinds2);
adapter.setDropDownViewResource(R.layout.spinner_item);
testSpinner.setAdapter(adapter);
'개발 공부 > Android' 카테고리의 다른 글
[Android Kotlin] RecyclerView Footer 넣기 (0) | 2022.05.27 |
---|---|
[Android Kotlin]Room 사용 시 Impl does not exist 이슈 (1) | 2020.10.24 |
[Android]안드로이드 스튜디오(Android Studio)에서 SHA-1값 확인 하는 방법 (0) | 2019.05.22 |
[Android Kotlin] 코틀린 Annotations (어노테이션) (0) | 2019.01.13 |
[Android Java] Java project에 Kotlin 추가하기 (0) | 2019.01.12 |