I am new to Kotlin. I created a fragment and implemented View.OnClickListener
and CheckBox.OnCheckedChangeListener
. The View.OnClickListener
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
.
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
}
}