Kotlin Android- How implement CheckBox.OnCheckedChangeListener?

最后都变了- 提交于 2020-07-18 08:40:11

问题


I am new to Kotlin. I created a fragment and implemented View.OnClickListener and CheckBox.OnCheckedChangeListener. The View.OnClickListener works as expected but it shows Unresloved reference for CheckBox.OnCheckedChangeListener.

The code is below

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

    override fun onClick(view: View?) {

    }


}

How can I implement CheckBox.OnCheckedChangeListener..? Thanks in advance


回答1:


Use CheckBox.OnCheckedChangeListener like:

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

where checkBox is CheckBox ID.




回答2:


CheckBox.OnClickListener is not an existing interface. CheckBox inherits from View, and so to assign a listener to a CheckBox, you can use its setOnClickListener method, which takes an instance of View.OnClickListener.

If you want to handle both of those events in the same Fragment, you'll have to differentiate the CheckBox and the other View using the parameter of the onClick method.

Alternatively, you could use lambdas as the listeners for your Views instead of the Fragment itself.

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

Using setOnCheckedChangeListener as mentioned in the other answers is also an option with CheckBox.




回答3:


var checkBox:CheckBox = CheckBox(context)
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->  
        if (isChecked) {
                //Do Whatever you want in isChecked
        }
}



回答4:


In Kotlin, you can use CheckBox.OnCheckedChangeListener like:-

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


来源:https://stackoverflow.com/questions/44150185/kotlin-android-how-implement-checkbox-oncheckedchangelistener

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!