2017-06-01 10 views

उत्तर

10

उपयोग

val textview = findViewById<TextView>(R.id.textview) 
textview.setOnClickListener(clickListener) 

val button = findViewById<Button>(R.id.button) 
button.setOnClickListener(clickListener) 

clickListener कोड।

val clickListener = View.OnClickListener {view -> 

    when (view.getId()) { 
     R.id.textview -> firstFun() 
     R.id.button -> secondFun() 
    } 
} 
1

आप kotlin में है कि onclickListener तरह का उपयोग

val fab = findViewById(R.id.fab) as FloatingActionButton 
fab.setOnClickListener { 
... 
} 
13

मान लीजिए आप क्लिक करने के लिए

text_view.text = "Hello Kotlin"; 

text_view.setOnClickListener { 
    val intent = Intent([email protected], SecondActivity::class.java) 
    intent.putExtra("key", "Kotlin") 
    startActivity(intent) 
} 
5

यहाँ TextView है कैसे Kotlin

में
button1.setOnClickListener(object : View.OnClickListener{ 
      override fun onClick(v: View?) { 
       //Your code here 
      } 
onClickListener का उपयोग करने पर एक उदाहरण है
0

बहु का उपयोग करने के लिए मिसाल आईडी:

textview1.setOnClickListener(clickListener) 
textview2.setOnClickListener(clickListener) 

गुमनाम वर्ग बनाएँ:

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.iv_circle_nighttime -> { 
      Toast.makeText(this, "Clicked 2", Toast.LENGTH_SHORT).show() 
     } 
    } 
} 
1

सबसे पहले आप देखें संदर्भ (कहते हैं कि बटन, TextView, आदि) हो और setOnClickListener का उपयोग कर संदर्भ के लिए एक OnClickListener सेट करने के लिए () विधि

// 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([email protected], "You clicked me.", Toast.LENGTH_SHORT).show() 
} 

पूरा Kotlin एंड्रॉयड उदाहरण के लिए Kotlin SetOnClickListener Example देखें जहां एक बटन एक गतिविधि में मौजूद है और OnclickListener बटन पर लागू होता है। जब आप बटन पर क्लिक करते हैं, तो SetOnClickListener ब्लॉक के अंदर कोड निष्पादित किया जाता है।

val button = findViewById<Button>(R.id.button); 

बार जब आप एक है: इस कोड Kotlin में onClickListener जोड़ने के लिए

+0

बहुत उपयोगी !!! अन्य उत्तरों की तुलना में आसान लग रहा है – Chip

4

उपयोग

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() 
    } 
} 
0

सबसे पहले इस प्रकार बटन, से View आप <> उपयोग कर सकते हैं कलाकारों को रोकने के लिए लगता है Button का उदाहरण, अब आप क्लिक श्रोता को निम्नानुसार संलग्न कर सकते हैं:

button.setOnClickListener { 
// You code here 
} 
1

इस प्रश्न पर विभिन्न प्रकार के उत्तरों के अनुसार इसे प्राप्त करने के कई तरीके हैं।

वास्तव में देखने के लिए श्रोता असाइन करने के लिए, आप एक ही तरीकों का उपयोग के रूप में आप जावा में होगा:

button.onSetClickListener { 
    // Listener code 
} 
:

button.setOnClickListener() 

हालांकि, Kotlin यह आसान एक श्रोता के रूप में एक लैम्ब्डा आवंटित करने के लिए बनाता है

val buttonClickListener = View.OnClickListener { view -> 
    // Listener code 
} 

button.setOnClickListener(buttonClickListener) 
another_button.setOnClickListener(buttonClickListener) 
:

वैकल्पिक रूप से, आप एक से अधिक विचारों के लिए इस श्रोता उपयोग करना चाहते हैं, एक लैम्ब्डा अभिव्यक्ति (एक लैम्ब्डा संदर्भ के लिए एक चर/मूल्य को सौंपना) पर विचार

0
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 
} 
0

विधि 1:

txtNext.setOnClickListener { 
     val intent = Intent(applicationContext, SecondActivity::class.java) 
     startActivity(intent) 
    } 

विधि 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 
     } 
    } 
    } 
} 
0

सबसे आसान तरीका है कि मैं प्राप्त करने के लिए है कि Kotlin एंड्रॉयड एक्सटेंशन के माध्यम से है।

अपने अनुप्रयोग पर/build.gradle

apply plugin: 'kotlin-android-extensions'

अपने बटन 'btnAdd' कहा जाता है, तो आपकी टुकड़ा या गतिविधि आयात पर निम्नलिखित:

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() 
    } 
} 
संबंधित मुद्दे