Как получить идентификатор SQLite из адаптера RecycleView в Kotlin? - PullRequest
0 голосов
/ 16 сентября 2018

Извините, я плохо говорю по-английски.Я новичок в Android Studio.

Я создаю то же самое приложение CREATE, UPDATE AND DELETE в Android Studio, используя собственный RecycleView.Но я запутался, как получить данные строки при нажатии на элемент recycleview.

Можно ли получить видимый текст в элементе RecycleView или нет?Или я могу получить эти данные напрямую из SQLite.

Как получить идентификатор SQLite из этого адаптера?

package gh.alwathan.sipinsyar

import android.support.v7.widget.PopupMenu
import android.support.v7.widget.RecyclerView
import android.view.*
import android.widget.TextView
import android.widget.Toast

class NasabahAdapter(val userList: ArrayList<Nasabah>) : RecyclerView.Adapter<NasabahAdapter.ViewHolder>() {



    //this method is returning the view for each item in the list
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NasabahAdapter.ViewHolder {
        val v = LayoutInflater.from(parent.context).inflate(R.layout.list_item_nasabah, parent, false)
        return ViewHolder(v)

    }

    //this method is binding the data on the list
    override fun onBindViewHolder(holder: NasabahAdapter.ViewHolder, position: Int) {
        holder.bindItems(userList[position])
        holder.itemView.setOnLongClickListener {

            //holder.nametxt.setText(players.get(position).getName());

            //creating a popup menu
            val popup = PopupMenu(holder.itemView.getContext(), holder.itemView, Gravity.RIGHT)
            //inflating menu from xml resource
            popup.inflate(R.menu.nasabah_item)
            //adding click listener

            popup.setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener { item: MenuItem? ->

                when (item!!.itemId) {
                    R.id.nasabah_id-> {

                        // GET SQLITE ID FROM HERE

                    }
                }

                true
            })

            //displaying the popup
            popup.show()

            true

        }
    }

    //this method is giving the size of the list
    override fun getItemCount(): Int {
        return userList.size
    }

    //the class is hodling the list view
    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun bindItems(user: Nasabah) {
            val textViewName = itemView.findViewById(R.id.nasabah_id) as TextView
            val textViewLastName  = itemView.findViewById(R.id.nasabah_nama) as TextView
            textViewName.text = user.id
            textViewLastName.text = user.nama
        }
    }
}

data class Nasabah(val id: String, val nama: String)
...