提问人:MXC 提问时间:3/29/2019 最后编辑:MXC 更新时间:3/29/2019 访问量:118
外部类对象未从 Kotlin 中的内部类更新
Outer class object not updating from inner class in Kotlin
问:
我正在使用带有图像按钮的 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 属性未初始化。
答: 暂无答案
评论