Je voulais savoir comment définir un onClickListener de base dans Kotlin pour le développement d'Android.
Oh oui ! L'inférence de type s'occupe de toutes les parties désordonnées. Merci !
Je voulais savoir comment définir un onClickListener de base dans Kotlin pour le développement d'Android.
Utilisez le code ci-dessous
val textview = findViewById<TextView>(R.id.textview)
textview.setOnClickListener(clickListener)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener(clickListener)
clickListener code.
val clickListener = View.OnClickListener {view ->
when (view.getId()) {
R.id.textview -> firstFun()
R.id.button -> secondFun()
}
}
Méthode 1 :
txtNext.setOnClickListener {
//Code statements
}
Méthode 2 :
class FirstActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_first)
txtNext.setOnClickListener(this)
}
override fun onClick(v: View) {
when (v.id) {
R.id.txtNext -> {
//Code statements
}
else -> {
// else condition
}
}
}
}
Pour l'utilisation de plusieurs identifiants :
textview1.setOnClickListener(clickListener)
textview2.setOnClickListener(clickListener)
Créer une classe anonyme :
private val clickListener: View.OnClickListener = View.OnClickListener { view ->
when (view.id) {
R.id.textview1-> {
Toast.makeText(this, "Clicked 1", Toast.LENGTH_SHORT).show()
}
R.id.textview2-> {
Toast.makeText(this, "Clicked 2", Toast.LENGTH_SHORT).show()
}
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
6 votes
C'est probablement populaire parce qu'Android Studio convertit le Java en
button.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View) { /*do work*/} })
et fournit ensuite un avis sur le code généré, indiquant que nous devons le convertir en un lambda.12 votes
Kotlin est sacrément peu intuitif. Je ne sais pas pourquoi Google y investit autant.
6 votes
Pourquoi tout le monde affiche la même réponse avec une légère différence ? La réponse est simple
view.setOnClickListener { ... }
. On dirait que tout le monde est si désireux de gagner une réputation.