728x90
SimpleAdapter
개발자가 ListView 의 항목을 자유롭게 디자인 했을 때 사용하는 Adapter Class이다.
ListView의 항목 내에 배치된 View들을 직접 지정하면서 데이터를 설정할 수 있다.
package com.example.customlistview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.SimpleAdapter
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*
class MainActivity : AppCompatActivity() {
val imgRes = intArrayOf(
R.drawable.imgflag1,R.drawable.imgflag2,R.drawable.imgflag3,R.drawable.imgflag4,
R.drawable.imgflag5,R.drawable.imgflag6,R.drawable.imgflag7,R.drawable.imgflag8,
)
val data1 = arrayOf(
"토고","프랑스","스위스","스페인","일본","독일","브라질","대한민국"
)
val data2 = arrayOf(
"togo","france","swiss","spain","japan","german","brazil","korea"
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// simple adapter에 셋티앟ㄹ 데이터를 가지고있을 ArrayList
val dataList = ArrayList<HashMap<String,Any>>()
for (i in 0..(imgRes.size-1)) {
var map = HashMap<String, Any>()
map.put("img",imgRes[i])
map.put("data1",data1[i])
map.put("data2",data2[i])
dataList.add(map)
}
// HashMap에 데이터를 저장했을 때 사용했던 이름 배열
val keys = arrayOf("img","data1","data2")
// 데이터를 세팅할 View의 id 배열
val ids = intArrayOf(R.id.rowImageView,R.id.rowTextView1,R.id.rowTextView2)
val adapter1 = SimpleAdapter(this,dataList,R.layout.row,keys,ids)
list1.adapter = adapter1
list1.setOnItemClickListener { parent, view, position, id ->
textView.text = "${data1[position]} 항목을 터치하였습니다"
}
}
}
728x90
'안드로이드 > AdapterView' 카테고리의 다른 글
안드로이드 GridView (0) | 2022.06.07 |
---|---|
안드로이드 Spinner (0) | 2022.06.07 |
안드로이드 CustomAdapter (0) | 2022.06.07 |
안드로이드 Custom ListView1 (0) | 2022.06.06 |
안드로이드 ListView (0) | 2022.06.02 |