PolicyAdapter.kt 3.28 KB
package com.example.vip

import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.item_policy.view.*
import kotlinx.android.synthetic.main.item_policyfield.view.*

class PolicyAdapter(private val items: ArrayList<PolicyItem>) :
    RecyclerView.Adapter<PolicyAdapter.ViewHolder>() {

    override fun getItemCount() = items.size

    override fun onBindViewHolder(holder: PolicyAdapter.ViewHolder, position: Int) {
        val item = items[position]

        holder.apply {
            bind(item)
            itemView.tag = item
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
            PolicyAdapter.ViewHolder {
        val inflatedView = LayoutInflater.from(parent.context)
            .inflate(R.layout.item_policy, parent, false)
        return PolicyAdapter.ViewHolder(inflatedView)
    }

    class ViewHolder(v: View) : RecyclerView.ViewHolder(v) {

        private var view: View = v

        val prof: SharedPreferences = view.context.getSharedPreferences("profdata", Context.MODE_PRIVATE)
        val editor: SharedPreferences.Editor=prof.edit()

        var tempstring=prof.getString("favorstringlist","")
        var sepstr=tempstring!!.split("@")
        var sepstrset=sepstr.toMutableSet()

        fun bind(item: PolicyItem) {
            view.policyImage.setImageDrawable(item.policyItemImage)
            view.policyDday.text = item.policyItemDday
            view.policyHost.text = item.policyItemHost
            view.policyTitle.text = item.policyItemTitle
            view.policyScore.rating= item.policyItemScore
            view.policyFavor.text=item.policyItemFavor


            if(item.policyItemTitle in sepstrset){
                view.policyFavor.isChecked=true
            }
            else{

            }
            view.setOnClickListener{

                val intent=Intent(view.context, DetailActivity::class.java)
                //putExtraStart
                intent.putExtra("key",item.policyItemTitle)
                //putExtraEnd
                view.context.startActivity(intent)
            }

            view.policyFavor.setOnClickListener {
                if (view.policyFavor.isChecked) {
                    tempstring = tempstring + view.policyTitle.text.toString() + "@"
                    editor.putString("favorstringlist", tempstring)
                    editor.commit()
                    Toast.makeText(
                        view.context,
                        "찜목록 추가 완료! : " + view.policyTitle.text.toString(),
                        Toast.LENGTH_SHORT
                    ).show()
                } else {
                    sepstrset.remove(view.policyTitle.text.toString())
                    editor.putString("favorstringlist", sepstrset.joinToString("@"))
                    editor.commit()
                    Toast.makeText(
                        view.context,
                        "찜목록 제거 완료! : " + view.policyTitle.text.toString(),
                        Toast.LENGTH_SHORT
                    ).show()
                }
            }
        }
    }
}