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

+ Recent posts