web-dev-qa-db-fra.com

Kotlin Android - Comment implémenter CheckBox.OnCheckedChangeListener?

Je suis nouveau chez Kotlin. J'ai créé un fragment et implémenté View.OnClickListener et CheckBox.OnCheckedChangeListener. Le View.OnClickListener fonctionne comme prévu mais affiche une référence non retirée pour CheckBox.OnCheckedChangeListener.

Le code est ci-dessous

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

    override fun onClick(view: View?) {

    }


}

Comment puis-je implémenter CheckBox.OnCheckedChangeListener ..? Merci d'avance

14
Ruthwik

Utilisez CheckBox.OnCheckedChangeListener comme:

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

checkBox est l'ID CheckBox.

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

CheckBox.OnClickListener n'est pas une interface existante. CheckBox hérite de View , et ainsi pour affecter un écouteur à un CheckBox, vous pouvez utiliser son - setOnClickListener , qui prend une instance de View.OnClickListener .

Si vous voulez gérer ces deux événements dans le même Fragment, vous devrez différencier le CheckBox et l'autre View en utilisant le paramètre du onClick méthode.

Vous pouvez également utiliser lambdas comme écouteurs pour votre Views au lieu du Fragment lui-même.

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

Utiliser setOnCheckedChangeListener comme mentionné dans les autres réponses est également une option avec CheckBox.

2
zsmb13