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
Use CheckBox.OnCheckedChangeListener like:
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
Toast.makeText(this,isChecked.toString(),Toast.LENGTH_SHORT).show()
}
where checkBox
is CheckBox ID.
var checkBox:CheckBox = CheckBox(context)
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
//Do Whatever you want in isChecked
}
}
In Kotlin
, you can use CheckBox.OnCheckedChangeListener
like:-
checkBox.setOnCheckedChangeListener { _, isChecked ->
Toast.makeText(this,isChecked.toString(),Toast.LENGTH_SHORT).show()
}
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 View
s 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
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With