Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kotlin Android- How implement CheckBox.OnCheckedChangeListener?

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

like image 235
Ruthwik Avatar asked May 24 '17 06:05

Ruthwik


4 Answers

Use CheckBox.OnCheckedChangeListener like:

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

where checkBox is CheckBox ID.

like image 159
Siddhartha Maji Avatar answered Nov 18 '22 15:11

Siddhartha Maji


var checkBox:CheckBox = CheckBox(context)
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->  
        if (isChecked) {
                //Do Whatever you want in isChecked
        }
}
like image 37
djo Avatar answered Nov 18 '22 17:11

djo


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

checkBox.setOnCheckedChangeListener { _, isChecked ->
   Toast.makeText(this,isChecked.toString(),Toast.LENGTH_SHORT).show()
}
like image 10
Shalu T D Avatar answered Nov 18 '22 15:11

Shalu T D


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.

like image 5
zsmb13 Avatar answered Nov 18 '22 15:11

zsmb13