Pendahuluan
Bertemu lagi kita di blog yang membahas tentang teknologi informasi dan pemrograman komputer. kali ini kita akan membahas tentang satu komponen di anroid studio, yaitunya RecyclerView. Komponene ini merupa pengembangan dari ListView. Artinya dengan menggunakan komponen ini kita bisa merancang tampilan android dalam bentuk list.
RecyclerView sendiri merupakan pengembangan dari ListView yang lebih di sederhanakan guna menjawab permasalahan yang timbul di ListView. Jika pada listView semua data akan ditampilkan, berbeda pada RecyclerView. Hanya dua data sebelum dan dua data sesudah yang di tampilkan pada layout sehingga membuat proses pada tampilan android lebih mudah. Perhatikan Gambarnya:
Persiapan
Buatl projek baru:
Nama projek :RecyclenView
Language:Kotlin
Layout
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
activity_main
<?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="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/itemTextView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/teal_200"
android:layout_alignParentStart="true"
android:textColor="#000000"
android:gravity="center"
android:textSize="20sp" />
</LinearLayout>
Class
CustomAdapter
package com.example.recycleview
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.annotation.NonNull
import androidx.recyclerview.widget.RecyclerView
internal class CustomAdapter(private var itemsList: List<String>) :
RecyclerView.Adapter<CustomAdapter.MyViewHolder>() {
internal inner class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var itemTextView: TextView = view.findViewById(R.id.itemTextView)
}
@NonNull
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val itemView = LayoutInflater.from(parent.context)
.inflate(R.layout.item, parent, false)
return MyViewHolder(itemView)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val item = itemsList[position]
holder.itemTextView.text = item
}
override fun getItemCount(): Int {
return itemsList.size
}
}
MainActivity
package com.example.recycleview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {
private val itemsList = ArrayList<String>()
private lateinit var customAdapter: CustomAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "RecyclerView - www.tutorialkart.com"
val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
customAdapter = CustomAdapter(itemsList)
val layoutManager = LinearLayoutManager(applicationContext)
recyclerView.layoutManager = layoutManager
recyclerView.adapter = customAdapter
prepareItems()
}
private fun prepareItems() {
itemsList.add("Item 1")
itemsList.add("Item 2")
itemsList.add("Item 3")
itemsList.add("Item 4")
itemsList.add("Item 5")
itemsList.add("Item 6")
itemsList.add("Item 7")
itemsList.add("Item 8")
itemsList.add("Item 9")
itemsList.add("Item 10")
itemsList.add("Item 11")
itemsList.add("Item 12")
itemsList.add("Item 13")
customAdapter.notifyDataSetChanged()
}
}
CustomAdapter