Skip to content

Instantly share code, notes, and snippets.

@webserveis
Last active March 21, 2020 10:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save webserveis/b66149f204c5946a8dd9107278486c63 to your computer and use it in GitHub Desktop.
Save webserveis/b66149f204c5946a8dd9107278486c63 to your computer and use it in GitHub Desktop.
Simple RecyclerView Kotlin AndroidX

RecyclerView Kotlin I

Ejemplo de como integrar un recyclerview usando Kotlin, los elementos se mostrarán con filas simples

Implementación xml de recyclerview usando AndroidX

<androidx.recyclerview.widget.RecyclerView 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:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main" />
initRecyclerView()
...
private fun initRecyclerView() {
val mAdapter = MySimpleAdapter(dummyData())
recycler_view.setHasFixedSize(true)
recycler_view.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
recycler_view.adapter = mAdapter
}
private fun dummyData() = listOf(
"dog",
"cat",
"owl",
"cheetah",
"raccoon",
"bird",
"snake",
"lizard",
"hamster",
"bear",
"lion",
"tiger",
"horse",
"frog",
"fish",
"shark",
"turtle",
"elephant",
"cow",
"beaver",
"bison",
"porcupine",
"rat",
"mouse",
"goose",
"deer",
"fox",
"moose",
"buffalo",
"monkey",
"penguin",
"parrot",
"chocobo"
)
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
class MySimpleAdapter(private val mDataSet: List<String>?) :
RecyclerView.Adapter<MySimpleAdapter.MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val v = LayoutInflater.from(parent.context)
.inflate(R.layout.simple_list_item_1, parent, false)
return MyViewHolder(v)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val data = mDataSet?.get(position)
data?.let { holder.bindItems(it) }
}
override fun getItemCount(): Int {
return mDataSet?.size ?: 0
}
inner class MyViewHolder(v: View) : RecyclerView.ViewHolder(v) {
private val text1 = v.findViewById(android.R.id.text1) as TextView
fun bindItems(data: String) {
text1.text = data
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="48dp""
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:textAppearance="?android:attr/textAppearanceListItemSmall" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment