Android-Comment réaliser setOnClickListener à Kotlin?
20 réponses
supposons que vous ayez textView pour cliquer
text_view.text = "Hello Kotlin";
text_view.setOnClickListener {
val intent = Intent(this@MainActivity, SecondActivity::class.java)
intent.putExtra("key", "Kotlin")
startActivity(intent)
}
utiliser 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()
}
}
voici un exemple d'utilisation de l'onClickListener à Kotlin
button1.setOnClickListener(object : View.OnClickListener{
override fun onClick(v: View?) {
//Your code here
})
Méthode 1:
txtNext.setOnClickListener {
val intent = Intent(applicationContext, SecondActivity::class.java)
startActivity(intent)
}
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 -> {
val intent = Intent(applicationContext, SecondActivity::class.java)
startActivity(intent)
}
else -> {
// else condition
}
}
}
}
Pour l'utilisation de plusieurs id:
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()
}
}
}
Utilisez ce code pour ajouter onClickListener
dans Kotlin
val button : Button = getView()?.findViewById<Button>(R.id.testButton) as Button
button.setOnClickListener {view ->
Toast.makeText(context, "Write your message here", Toast.LENGTH_LONG).show()
}
}
Vous utilisez comme ça onclickListener dans kotlin
val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener {
...
}
tout d'abord, vous devez obtenir la référence à la vue (bouton say, TextView, etc.) et définir un OnClickListener à la référence en utilisant la méthode setOnClickListener ()
// get reference to button
val btn_click_me = findViewById(R.id.btn_click_me) as Button
// set on-click listener
btn_click_me.setOnClickListener {
Toast.makeText(this@MainActivity, "You clicked me.", Toast.LENGTH_SHORT).show()
}
Consulter Kotlin SetOnClickListener Exemple pour Kotlin complet Android exemple où un bouton est présent dans une activité et OnclickListener est appliqué sur le bouton. Lorsque vous cliquez sur le bouton, le code dans le bloc SetOnClickListener est exécuté.
il existe plusieurs façons d'y parvenir, comme le montre la variété des réponses à cette question.
Pour attribuer l'auditeur à la vue, vous utilisez les mêmes méthodes que vous en Java:
button.setOnClickListener()
cependant, Kotlin rend facile d'assigner un lambda comme auditeur:
button.onSetClickListener {
// Listener code
}
alternativement, si vous voulez utiliser cet auditeur pour des vues multiples, considérez une expression lambda (une lambda assignée à une variable/valeur pour de référence):
val buttonClickListener = View.OnClickListener { view ->
// Listener code
}
button.setOnClickListener(buttonClickListener)
another_button.setOnClickListener(buttonClickListener)
Il suffit de faire comme ci-dessous:
button.setOnClickListener{doSomething()}
**i have use kotlin-extension so i can access directly by button id:**
btnSignIN.setOnClickListener {
if (AppUtils.isNetworkAvailable(activity as BaseActivity)) {
if (checkValidation()) {
hitApiLogin()
}
}
}
simplement vous pouvez obtenir OnClickListener à kotlin
view1.setOnClickListener{
//body
}
var tv = findViewById(R.id.tv) comme TextView
tv.setOnClickListener {
val i = Intent(this@MainActivity, SecondActivity::class.java)
startActivity(i)
finish()
}
d'Abord trouver le bouton, pour éviter la fonte de la View
vous pouvez utiliser le <>
comme suit :
val button = findViewById<Button>(R.id.button);
une fois que vous avez une instance du Button
, vous pouvez maintenant attacher l'écouteur de clic comme suit:
button.setOnClickListener {
// You code here
}
val saveButton:Button = findViewById(R.id.button_save)
saveButton.setOnClickListener{
// write code for click event
}
with view object
saveButton.setOnClickListener{
view -> // write code for click event
}
la façon la plus facile que je sais pour atteindre ce est par Kotlin Extensions Android.
sur votre app / build.gradle
apply plugin: 'kotlin-android-extensions'
si votre bouton s'appelle 'btnAdd', alors sur votre fragment ou activité importez ce qui suit:
import kotlinx.android.synthetic.main.fragment_transactions.btnAdd
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
btnAdd.setOnClickListener {
Toast.makeText(context , "Done", 10).show()
}
}
si vous voulez simuler la vieille méthode anonyme à Kotlin, j'ai trouvé que ça marchait parfaitement.
btnNewWay!!.setOnClickListener(object:View.OnClickListener {
override fun onClick(v: View?) {
//Your Code Here!
}})
Ajouter clickListener sur le bouton comme ceci
btUpdate.setOnClickListener(onclickListener)
ajouter ce code dans votre activité
val onclickListener: View.OnClickListener = View.OnClickListener { view ->
when (view.id) {
R.id.btUpdate -> updateData()
}
}
findViewById<Button>(R.id.signUp)?.setOnClickListener(
Toast.makeText(mActivity, "Button Clicked", Toast.LENGTH_LONG).show()
)
je vois beaucoup de suggestions ici, mais cette collection manque le suivant.
button.setOnClickListener(::onButtonClicked)
et dans la classe actuelle, nous avons une méthode comme ceci:
private fun onButtonClicked(view: View) {
// do stuff
}