Friday, 18 December 2020

How can I get LifecycleOwner reference in RecyclerView.Adapter?

At present, I use mLifecycleOwner = mContext as LifecycleOwner to get LifecycleOwner, it can work, but I don't think it's a good code.

How can I get LifecycleOwner from ListAdapter?

class VoiceAdapters (private val aHomeViewModel: HomeViewModel, private val mPlay: PlayInterface):
        ListAdapter<MVoice, VoiceAdapters.VoiceViewHolder>(MVoiceDiffCallback()) {

    private lateinit var mContext: Context
    private lateinit var mLifecycleOwner:LifecycleOwner

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VoiceViewHolder {
        mContext = parent.context
        mLifecycleOwner = mContext as LifecycleOwner

        return VoiceViewHolder(
            LayoutVoiceItemBinding.inflate(LayoutInflater.from(parent.context), parent, false).also {               
               it.lifecycleOwner = mLifecycleOwner
               it.aHomeViewModel = aHomeViewModel
            }
        )
    }

    ...
}


from How can I get LifecycleOwner reference in RecyclerView.Adapter?

No comments:

Post a Comment