@@ -2,45 +2,56 @@ package com.appleobject.notekeeper
22
33import android.content.Context
44import android.content.Intent
5+ import android.provider.ContactsContract
56import android.view.LayoutInflater
67import android.view.View
78import android.view.ViewGroup
89import android.widget.TextView
910import androidx.recyclerview.widget.RecyclerView
1011import com.appleobject.notekeeper.model.NoteInfo
1112
12- class NoteRecyclerAdapter (private val context : Context , val notes : List <NoteInfo >)
13- : RecyclerView .Adapter <NoteRecyclerAdapter .ViewHolder >() {
13+ class NoteRecyclerAdapter (private val context : Context , private var notes : List <NoteInfo >)
14+ : RecyclerView .Adapter <RecyclerView .ViewHolder >() {
1415
15- private val layoutInflater = LayoutInflater .from(context)
1616
17- inner class ViewHolder (itemView : View ) : RecyclerView.ViewHolder(itemView){
18- val textCourse = itemView.findViewById<TextView >(R .id.textCourse)
19- val textTitle = itemView.findViewById<TextView >(R .id.textTitle)
17+ class NoteViewHolder (itemView : View ) : RecyclerView.ViewHolder(itemView){
18+ private val textCourse: TextView = itemView.findViewById<TextView >(R .id.textCourse)
19+ private val textTitle: TextView = itemView.findViewById<TextView >(R .id.textTitle)
2020 var notePosition = 0
2121
2222 init {
2323 itemView.setOnClickListener {
24- val intent = Intent (context, NoteActivity ::class .java)
24+ val intent = Intent (it. context, NoteActivity ::class .java)
2525 intent.putExtra(NOTE_POSITION , notePosition)
26- context.startActivity(intent)
26+ it. context.startActivity(intent)
2727 }
2828
2929 }
3030
31+ // Bind the view to the collection
32+ fun bind (noteInfo : NoteInfo ){
33+ textCourse.text = noteInfo.course?.title
34+ textTitle.text = noteInfo.title
35+ }
36+
3137 }
3238
33- override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): ViewHolder {
34- val itemView = layoutInflater.inflate(R .layout.item_note_list, parent, false )
35- return ViewHolder (itemView)
39+ override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): RecyclerView .ViewHolder {
40+ return NoteViewHolder (
41+ LayoutInflater .from(parent.context).inflate(R .layout.item_note_list, parent, false )
42+ )
3643 }
3744
3845 override fun getItemCount () = notes.size
3946
40- override fun onBindViewHolder (holder : ViewHolder , position : Int ) {
41- val note = notes[position]
42- holder.textCourse.text = note.course?.title
43- holder.textTitle.text = note.title
44- holder.notePosition = position
47+
48+ // We can have more than one ViewHolder
49+ override fun onBindViewHolder (holder : RecyclerView .ViewHolder , position : Int ) {
50+ when (holder){
51+ is NoteViewHolder -> {
52+ holder.bind(notes[position])
53+ holder.notePosition = position
54+ }
55+ }
4556 }
4657}
0 commit comments