1 Adapter
- RecyclerView Adapter, findViewById도 ViewBinding, DataBinding으로 해결해보자
// row_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:id="@+id/myText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:text="HELLO"/>
</LinearLayout>
// CustomViewAdapter.kt
class CustomViewAdapter(private val dataSet : ArrayList<String>) : RecyclerView.Adapter<CustomViewAdapter.ViewHolder>(){
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_view_binding.kt
```kotlin
class CustomViewAdapter(private val dataSet : ArrayList<String>) : RecyclerView.Adapter<CustomViewAdapter.ViewHolder>(){
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
}
}
// ViewBindingActivity.kt
class ViewBindingActivity : AppCompatActivity() {
private lateinit var binding : ActivityViewBindingBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityViewBindingBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
val array = ArrayList<String>()
array.add("a")
array.add("b")
array.add("c")
array.add("a")
array.add("b")
array.add("c")
array.add("a")
array.add("b")
array.add("c")
array.add("a")
array.add("b")
array.add("c")
val customViewAdapter = CustomViewAdapter(array)
val rv = binding.rv
rv.adapter= customViewAdapter
rv.layoutManager= LinearLayoutManager(this)
}
}