【问题标题】:Kotlin Android- How implement CheckBox.OnCheckedChangeListener?Kotlin Android - 如何实现 CheckBox.OnCheckedChangeListener?
【发布时间】:2017-10-24 07:32:31
【问题描述】:

我是 Kotlin 的新手。我创建了一个片段并实现了View.OnClickListenerCheckBox.OnCheckedChangeListenerView.OnClickListener 按预期工作,但它显示 CheckBox.OnCheckedChangeListener 的 Unresloved 参考。

代码如下

class LoginFragment : Fragment(), View.OnClickListener, CheckBox.OnCheckedChangeListener {

    override fun onClick(view: View?) {

    }


}

如何实现CheckBox.OnCheckedChangeListener..? 提前致谢

【问题讨论】:

  • 请发布显示错误的代码。
  • 显示你的代码...

标签: android checkbox kotlin


【解决方案1】:

使用 CheckBox.OnCheckedChangeListener 像:

checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
  Toast.makeText(this,isChecked.toString(),Toast.LENGTH_SHORT).show()
}

checkBox 是复选框 ID。

【讨论】:

    【解决方案2】:
    var checkBox:CheckBox = CheckBox(context)
    checkBox.setOnCheckedChangeListener { buttonView, isChecked ->  
            if (isChecked) {
                    //Do Whatever you want in isChecked
            }
    }
    

    【讨论】:

      【解决方案3】:

      Kotlin,你可以使用CheckBox.OnCheckedChangeListener,比如:-

      checkBox.setOnCheckedChangeListener { _, isChecked ->
         Toast.makeText(this,isChecked.toString(),Toast.LENGTH_SHORT).show()
      }
      

      【讨论】:

        【解决方案4】:

        CheckBox.OnClickListener 不是现有接口。 CheckBox 继承自 View,因此要将侦听器分配给 CheckBox,可以使用其 setOnClickListener 方法,该方法采用 View.OnClickListener 的实例。

        如果您想在同一个Fragment 中处理这两个事件,则必须使用onClick 方法的参数来区分CheckBox 和另一个View

        或者,您可以使用 lambdas 作为 Views 的侦听器,而不是 Fragment 本身。

        checkbox.setOnClickListener { view ->
            // handle clicks here
        }
        

        其他答案中提到的使用setOnCheckedChangeListener 也是CheckBox 的一个选项。

        【讨论】:

        • 完美!我只是像这样使用:myCheckBox.setOnClickListener { view -> if (view is CheckBox) { if (view.isChecked) onCheck(true) else onCheck(false) } }
        猜你喜欢
        • 2017-11-02
        • 2020-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-02
        • 1970-01-01
        • 2023-04-09
        • 2017-10-02
        相关资源
        最近更新 更多