问题
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