listView를 대신할 목적으로 RecycleView를 쓰라고 하는데,영 귀찮은게 많다.
네이버를 좀 찾아서 찾긴했는데,
초보자에게는 영 헤깔리는 부분이 많다.
최대한 간결하게 작성한 코드이다.
[메인액티비티.kt]
class MainActivity : AppCompatActivity() {
data class Color(val name: String, val food: String, val photo: String)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var colorList = arrayListOf<Color>(
Color("RED", "Like Strawberry", "red"),
Color("Blue", "Like SkyCake", "blue"),
Color("Purple", "Like Grape", "purple")
)
var adapter = Adapter(this, colorList) {color ->
Toast.makeText(this, "선택한 색상은 ${color.name}이고, 이 색상의 과일은 ${color.food}입니다.",Toast.LENGTH_SHORT).show()
}
recycleView.adapter = adapter
var lm = LinearLayoutManager(this)
recycleView.layoutManager = lm
recycleView.setHasFixedSize(true)
}
}
[아답터.kt]
class Adapter(val context : Context, val colorList : ArrayList<MainActivity.Color>,
val itemClick : (MainActivity.Color) -> Unit) : RecyclerView.Adapter<Adapter.Holder>() {
override fun getItemCount(): Int {
return colorList.size
}
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): Holder {
var view = LayoutInflater.from(context).inflate(R.layout.recycle_layout, null)
return Holder(view, itemClick)
}
override fun onBindViewHolder(p0: Holder, p1: Int) {
p0?.bind(colorList[p1], context)
}
inner class Holder(itemView: View?, itemClick: (MainActivity.Color) -> Unit) : RecyclerView.ViewHolder(itemView!!){
val txt1 = itemView?.findViewById<TextView>(R.id.textView2)
val txt2 = itemView?.findViewById<TextView>(R.id.textView3)
val image = itemView?.findViewById<ImageView>(R.id.imageView)
fun bind(colorList: MainActivity.Color, context: Context) {
var imageID = context.resources.getIdentifier(colorList.photo, "drawable", context.packageName)
image?.setImageResource(imageID)
txt1?.text = colorList.name
txt2?.text = colorList.food
itemView?.setOnClickListener { itemClick(colorList) }
}
}
}
'Dead Code > DEPRECATED-KOTLIN' 카테고리의 다른 글
[코틀린코드연습장] 쓰레드(2).. 핸들러를 활용한 반복 (0) | 2019.01.11 |
---|---|
[코틀린코드연습장] 쓰레드.(1) (0) | 2019.01.10 |
[코틀린코드연습장] 아무 기능도 없는 그림판 (0) | 2019.01.03 |
[코틀린코드연습장] 텍스트뷰 자동완성 - autoCompleteText ; ArrayList (0) | 2019.01.03 |
[코틀린코드연습장] Activity 전환(Anko) (0) | 2019.01.01 |
[코틀린코드연습장] 옵션메뉴에 붙어있는 검색창 사용하기 (0) | 2018.12.24 |
[코틀린코드연습장] 다이얼로그 - 날짜/시간 입력 다이얼로그 (0) | 2018.12.21 |
[코틀린코드연습장] viewPager 생성하기 (0) | 2018.12.10 |
[코틀린코드연습장] NOTIFICATION.... 삽질 (0) | 2018.11.02 |
[코틀린코드연습장] 기본 다이얼로그 (0) | 2018.10.18 |