RecyclerView full template ( Kotlin )
data class Item(val text: String)
class MainActivity : AppCompatActivity() {
private val items = listOf(
Item("Lorem ipsum dolor sit amet,"),
Item("consectetur adipiscing elit,"),
Item("sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."),
Item("Ut enim ad minim veniam,"),
Item("quis nostrud exercitation ullamco laboris"),
Item("Snisi ut aliquip ex ea commodo consequat."),
Item("Duis aute irure dolor in reprehenderit...")
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_layout)
mylist.layoutManager = LinearLayoutManager(this)
mylist.adapter = MyAdapter(items)
}
}
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/mylist"
tools:listitem="@layout/row"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
class MyAdapter(private val items: List<Item>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
override fun getItemCount(): Int = items.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder{
val view = LayoutInflater.from(parent.context).inflate(R.layout.row, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bind( items[position] )
Log.i("test", items[position].text )
}
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
fun bind(item: Item) {
itemView.value.text = item.text
itemView.value.setOnClickListener {
view -> Toast.makeText(view.context, item.text, Toast.LENGTH_SHORT).show()
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>