# Customize recyclerView
1. Customize a list layout name 'list_view.xml'
```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="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="title"
android:textStyle="bold" />
<TextView
android:id="@+id/item_detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="detail"
android:textStyle="italic" />
</LinearLayout>
<Button
android:id="@+id/item_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete"/>
</LinearLayout>
```
2. Modify adapter class
```kotlin=
class MyAdapter(private val mData: ArrayList<MyItem>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
class MyViewHolder(view: View) : RecyclerView.ViewHolder(view){
val title: TextView = view.findViewById(R.id.item_title)
val detail: TextView = view.findViewById(R.id.item_detail)
val deleteBtn: Button = view.findViewById(R.id.item_delete)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.list_view,parent,false)
return MyViewHolder(view)
}
override fun getItemCount(): Int{
return mData.size
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val myViewHolder = holder as MyViewHolder
val item = mData[position]
myViewHolder.title.text = item.title
myViewHolder.detail.text = item.detail
myViewHolder.deleteBtn.setOnClickListener {
deleteItem(holder.adapterPosition)
}
}
fun deleteItem(index: Int){
if(index >=0 && index < mData.size){
mData.removeAt(index)
notifyItemRemoved(index)
}
}
fun addItem(item:MyItem){
val index = mData.size
mData.add(index,item)
notifyItemInserted(index)
}
}
class MyItem(val title:String,val detail:String)
```
3. Using
```kotlin=
val data = ArrayList<MyItem>().apply {
add(MyItem("Reading","Android study"))
add(MyItem("Workout","Full body training"))
add(MyItem("Shopping","Buy some broccoli"))
add(MyItem("Writing","Write some article"))
add(MyItem("Others","Do anything"))
}
val adpater = MyAdapter(data)
val recycleView = view.findViewById<RecyclerView>(R.id.my_recycle_view)
recycleView.layoutManager = LinearLayoutManager(context)
recycleView.adapter = adpater
fab.setOnClickListener {
adpater.addItem(MyItem("New Item","$#%@$%@$%"))
}
```
4. Result
