不从Kotlin的内部类更新外部类对象

时间:2019-03-29 04:35:44

标签: android kotlin android-recyclerview recycler-adapter

我正在使用带有图像按钮的recyclerview。在适配器方法onBindViewHolder(..)中。我捕获用户是否选择了图像按钮。在外部类中,无论用户是否选择某项,我都会保留一个参考。

我能够捕获用户选择,但外部类字段不会更新。我正在使用Kotlin,这是示例。

class Quiz : ConstraintLayout {
constructor(context: Context?) : super(context)

// This is updated in the apdater.
private var selectedOption : String? = null

@SuppressLint("ClickableViewAccessibility")
private fun inflate(context: Context) {
    LayoutInflater.from(context)
        .inflate(R.layout.image_layout, this, true) as ConstraintLayout

        viewAnimation.startTimerAnimation(7000) {
        // This always remain null. This callback is triggered after 7000 ms i.e. when animation completes.
            if (selectedOption == null)
                // do something less
            else // do something more
        }

}

inner class ImageAdapter() : RecyclerView.Adapter<ViewHolder>() {
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        optionButton.setOnClickListener {
        // I have put a log statement here and tested the selection is captured. I also see in on the screen.
            selectedOption = imageButtonMap[holder.optionButton].toString()

        }
    }
}

如果需要更多详细信息,请告诉我。 作为测试,我还使属性Lateinit和Kotlin抛出异常,说明未初始化lateinit属性。

0 个答案:

没有答案