Cara Menggunakan RecyclerView dan Adapter di Kotlin

 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


Previous Post Next Post