반응형
안녕하세요. 훈츠 입니다. 안드로이드 스피너(콤보박스) 에 모델 클래스를 적용하는 방법에 대해 포스팅합니다.
스피너 (spinner) : SpinnerAdpter = ArrayAdater : AdapterView
스피너 1편에 이어, dataArray 가 아닌 ModelClass 를 적용 하는 방법입니다. ModelClass 만드는 방법과 적용시 유의 사항에 대해 말씀 드리겠습니다.
순 서
- ModelClass.kt 만들기
- Model Class 에 toString 함수를 override 하여 Spinner에서 최초로 선택하고 보여줄 값을 설정 합니다.
- dataArray<ModleClass> type 으로 제너릭 선언 후, dataArray 를 arrayAdapter에 할당합니다.
- arrayAdapter <ModelClass> 를 제너릭 선언 합니다.
ModelClass.kt
1
2
3
4
5
6
7
|
class ModelClass(val food:String, val price:Int) {
override fun toString(): String { //스피너의 돌려줄 값을 이야기 하는것임
return food
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
MainActivity.kt (스피너 어댑터 설정)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
class MainActivity : AppCompatActivity() {
var dataArray = arrayOf(ModelClass("짜장면",7000),ModelClass("짬뽕",8000),ModelClass("볶음밥",8500))
lateinit var adapter : ArrayAdapter<ModelClass>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
adapter = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item,dataArray)
spinner.adapter = adapter
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onNothingSelected(parent: AdapterView<*>?) {
TODO("Not yet implemented")
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
// it을 사용 합니다.
dataArray[position].let{
}
/*
// it을 사용하지 않고 사용
dataArray[position].run{
textView.setText("${food} 은 ${price} 원 입니다.")
}
// with 를 이용한 방법 기본적으로 run 과 같음
with(dataArray[position]){
textView.setText("${food} 은 ${price} 원 입니다.")
}
*/
}
}
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
코드실행 화면
'안드로이드 프로그래밍[Kotiln Code] > 안드로이드 초기 강좌' 카테고리의 다른 글
[안드로이드] 리싸이클러뷰 1 (0) | 2020.04.10 |
---|---|
[안드로이드] 스피너3 (콤보박스) with Mutable list (0) | 2020.04.09 |
[안드로이드] 스피너 (콤보박스) (0) | 2020.04.09 |
[안드로이드] Radio 버튼 & Check 박스 (0) | 2020.04.07 |
[안드로이드] Image View 이미지 뷰 (0) | 2020.04.06 |