기존 Adapter와의 차이
기존 어댑터.
class CustomAdapter(private val dataSet : ArrayList<String>) : RecyclerView.Adapter<CustomAdapter.ViewHolder>(){
class ViewHolder(view : View) : RecyclerView.ViewHolder(view){
val myText : TextView
init{
myText = view.findViewById(R.id.myText)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.text_row_item,parent,false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: CustomAdapter.ViewHolder, position: Int) {
holder.myText.text = dataSet[position]
}
override fun getItemCount(): Int {
return dataSet.size
}
}
뷰 바인딩 어댑터.
class CustomViewAdapter (private val dataSet : ArrayList<String>) : RecyclerView.Adapter<CustomViewAdapter.ViewHolder>(){
//이 지점에 binding이 들어감.
class ViewHolder(binding : TextRowItemBinding) : RecyclerView.ViewHolder(binding.root){
val myText : TextView = binding.myText
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):ViewHolder {
val view = TextRowItemBinding.inflate(LayoutInflater.from(parent.context),parent,false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.myText.text = dataSet[position]
}
override fun getItemCount(): Int {
return dataSet.size
}
}
Activity 파일.
package com.example.adapterviewbinding.viewBinding
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.adapterviewbinding.R
import com.example.adapterviewbinding.databinding.ActivityViewBindingBinding
class ViewBindingActivity : AppCompatActivity() {
private lateinit var binding : ActivityViewBindingBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityViewBindingBinding.inflate(layoutInflater)
val view = binding.root
val array = ArrayList<String>()
array.add("a")
array.add("b")
array.add("c")
array.add("d")
array.add("e")
array.add("f")
array.add("g")
array.add("h")
array.add("j")
array.add("k")
val customViewAdapter = CustomViewAdapter(array)
val rv = binding.rv
rv.adapter = customViewAdapter
rv.layoutManager = LinearLayoutManager(this)
setContentView(view)
}
}
'Android > ViewBinding' 카테고리의 다른 글
ViewBinding 사용하기.(findViewById 대체) (0) | 2022.11.21 |
---|