MVC모델에서 서버에서 Spinner값을 가져올때 key, description 값을 가져오면 Model에 아래와 같은 형식으로 가져온다.
toString을 override 해서 spinner에 표시되는 값을 지정해준다. override해주지 않으면 해당 스피너의 '클래스@ab4732d'와같이 이상한값이 나오므로 해당값을 추가해준다.
class spinnerModel{
var key : String = ""
var description : String = ""
constructor(key:String,description:String) {
key = key
description = description
}
override fun toString(): String { // 해당 코드가 있어야 spinner에 정상적으로 description이 나온다
return description!!
}
}
서버에서 spinner 목록을 가져오면 아래와같은 코드를 이용해 spinner에 추가하면된다.
서버와 연결하는 코드는 이전에 작성한 글을 참고바란다.
서버에서 spinner 목록 가져오기
{
val list : ArrayList<String>
list!!.add(0, spinnerModel("", "----- 선택하세요. -----"))
// 혹은 val list = listOf<String>("리스트1") 해당 코드를 사용한다.
val spinnerAdapter = ArrayAdapter(requireContext(), R.layout.custom_spinner_item_center_black, list)
spinnerAdapter.setDropDownViewResource(R.layout.custom_spinner_dropdown_item)
binding.spinnerList.adapter = spinnerAdapter
}
layout@custom_spinner_item_center_black.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/font_default"
android:textColor="@android:color/black"
android:ellipsize="marquee"
android:gravity="center"
android:textAlignment="inherit"/>
layout@custom_spinner_dropdown_item.xml
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:textSize="@dimen/font_default"
/>
'프로그래밍 > Kotlin' 카테고리의 다른 글
[Android] 버튼 클릭시 특정 링크로 이동 (0) | 2022.06.30 |
---|---|
[Kotlin] EditText 코드로 열기 (XML사용 X) (0) | 2022.04.20 |
[Kotlin] 안전하게 특정 클래스로 Type Casting 하는법 (0) | 2022.03.16 |
[Android] Adapter의 아이템 위치찾기 (0) | 2022.03.03 |
View의 Visible, Gone, invisible 차이 (0) | 2022.02.09 |
댓글