Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.todo
- import android.app.AlertDialog
- import android.content.DialogInterface
- import android.util.Log
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import android.widget.Button
- import android.widget.TextView
- import android.widget.Toast
- import androidx.recyclerview.widget.RecyclerView
- import kotlinx.android.synthetic.main.list_item.view.*
- class TodoAdapter(private val myDataset: Model) : RecyclerView.Adapter<TodoAdapter.MyViewHolder>() {
- class MyViewHolder(val view: View) : RecyclerView.ViewHolder(view){
- val todoText : TextView = itemView.todoText
- val buttonDelete : Button = itemView.buttonHapus
- val buttonEdit : Button = itemView.buttonEdit
- }
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TodoAdapter.MyViewHolder {
- var view = LayoutInflater.from(parent.context).inflate(R.layout.list_item, parent, false)
- return MyViewHolder(view)
- }
- // Replace the contents of a view (invoked by the layout manager)
- override fun onBindViewHolder(holder: MyViewHolder, index: Int) {
- holder.todoText.text = myDataset.data.value!![index].task
- //remove
- holder.buttonDelete.setOnClickListener{ view->
- myDataset.deleteTodo(holder.adapterPosition) // method from Model
- notifyItemRemoved(index) // delete berdasarkan index pada tampilan
- notifyItemRangeChanged(index,myDataset.data.value!!.size) // merubah index kembali
- }
- //edit
- holder.buttonEdit.setOnClickListener{ view->
- val context = holder.itemView.context
- val inflater = LayoutInflater.from(context)
- val view = inflater.inflate(R.layout.pop_up,null)
- // textclicked
- val prevText:String = myDataset.data.value!![index].task // data sebelumnya g
- val editText = view.findViewById<TextView>(R.id.editInput)
- editText.text = prevText
- // dialot / Alert
- val alertDialog = AlertDialog.Builder(context)
- alertDialog
- .setView(view)
- .setPositiveButton("Update",DialogInterface.OnClickListener{ dialog,id ->
- myDataset.updateTodo(holder.adapterPosition, editText.text.toString())
- notifyDataSetChanged()
- })
- .show()
- }
- }
- // Return the size of your dataset (invoked by the layout manager)
- override fun getItemCount() = myDataset.data.value!!.size
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement