add RecyclerView
This commit is contained in:
parent
246f8dc4b4
commit
15ffd36b43
@ -2,10 +2,16 @@ package world.whatever.task_roomdb
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
val recyclerView = findViewById<RecyclerView>(R.id.recyclerview)
|
||||
val adapter = WordListAdapter()
|
||||
recyclerView.adapter = adapter
|
||||
recyclerView.layoutManager = LinearLayoutManager(this)
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package world.whatever.task_roomdb
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
class WordListAdapter : ListAdapter<Word, WordListAdapter.WordViewHolder>(WordsComparator()) {
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WordViewHolder {
|
||||
return WordViewHolder.create(parent)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: WordViewHolder, position: Int) {
|
||||
val current = getItem(position)
|
||||
holder.bind(current.word)
|
||||
}
|
||||
|
||||
class WordViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
private val wordItemView: TextView = itemView.findViewById(R.id.textView)
|
||||
|
||||
fun bind(text: String?) {
|
||||
wordItemView.text = text
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun create(parent: ViewGroup): WordViewHolder {
|
||||
val view: View = LayoutInflater.from(parent.context)
|
||||
.inflate(R.layout.recyclerview_item, parent, false)
|
||||
return WordViewHolder(view)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class WordsComparator : DiffUtil.ItemCallback<Word>() {
|
||||
override fun areItemsTheSame(oldItem: Word, newItem: Word): Boolean {
|
||||
return oldItem === newItem
|
||||
}
|
||||
|
||||
override fun areContentsTheSame(oldItem: Word, newItem: Word): Boolean {
|
||||
return oldItem.word == newItem.word
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user