Adatper
class CustomDataAdapter (private val dataSet : ArrayList<String>) : RecyclerView.Adapter<CustomDataAdapter.ViewHolder>(){
class ViewHolder(binding : TextRowItemBinding) : RecyclerView.ViewHolder(binding.root){
val myText : TextView = binding.myText
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):ViewHolder {
val view = DataBindingUtil.inflate<TextRowItemBinding>(LayoutInflater.from(parent.context),
R.layout.text_row_item,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
class DataBindingActivity : AppCompatActivity() {
private lateinit var binding : ActivityDataBindingBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this,R.layout.activity_data_binding)
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 = CustomDataAdapter(array)
val rv = binding.rv
rv.adapter = customViewAdapter
rv.layoutManager = LinearLayoutManager(this)
return
}
}
text_row_item.xml (item의 res파일에도 가장 밖에 layout을 둘러줘야함.)
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
>
<LinearLayout
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:text="HELLO"
android:textSize="40sp" />
</LinearLayout>
</layout>

'Android > DataBinding' 카테고리의 다른 글
DataBinding과 data class (0) | 2022.11.21 |
---|---|
DataBinding 사용하기 (0) | 2022.11.21 |