【发布时间】:2021-06-06 15:57:35
【问题描述】:
我有一些 MaterialButtons 会更改选中状态(在切换组场景中)。
我的计划是通过MaterialButtons addOnCheckedChangeListener收听Checked状态
但是当某些情况发生时我需要删除监听器,我如何从 lambda 中获取监听器(对象)(并将其放入 onCheckedChangeListener 值中)?
var onCheckedChangeListener: MaterialButton.OnCheckedChangeListener?=null
...
myMaterialButton?.addOnCheckedChangeListener { button, isChecked ->
Log.i(TAG, "onViewCreated: button = $button, isChecked = $isChecked")
if(button.isChecked)
{
//Use some variables which are reachable here
//Do som work
}
else
{
//Use some variables which are reachable here
//Do some other work
}
}
...
//Some condition prior to this causes me to remove the listener by using
//removeOnCheckedChangeListener, but how do I get the onCheckedChangeListener from my
//lambda above which I need to remove ?
myMaterialButton?.removeOnCheckedChangeListener(onCheckedChangeListener)
解决方案当然很简单,但我找不到任何明显的答案。
【问题讨论】:
-
将该 lambda 函数分配给您的
onCheckedChangeListener,然后执行myMaterialButton?.addOnCheckedChangeListener(onCheckedChangeListener)
标签: android kotlin listener oncheckedchanged materialbutton