Android:创建侦听器的首选方法,函数vs内部类vs对象

问题描述

当前,我正在片段中创建一个简单的CompoundButton.OnCheckedchangelistener。我的问题是,我有三种创建方法

解决方案1 ​​

fun switchListener() : CompoundButton.OnCheckedchangelistener {
    return CompoundButton.OnCheckedchangelistener { buttonView,isChecked ->
        if (isChecked) rebuildviewmodel
    }
}

解决方案2

inner class SwitchClass : CompoundButton.OnCheckedchangelistener {
    override fun onCheckedChanged(buttonView: CompoundButton?,isChecked: Boolean) {
        if (isChecked) rebuildviewmodel
    }
}

解决方案3

object SwitchListener : CompoundButton.OnCheckedchangelistener {
    override fun onCheckedChanged(buttonView: CompoundButton?,isChecked: Boolean) {
        if(isChecked) rebuildviewmodel // unresolved reference
    }
}

我的问题是,这些实现之间的主要区别是什么?我看到的唯一区别是rebuildviewmodel内无法访问object SwitchListener。为什么?我应该选择哪种实施方式?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)