كيفية تعيين OnClickListener بشكل صحيح لزر في Android باستخدام Kotlin؟
مرحبًا بالجميع! لقد بدأت للتو في تعلم Kotlin لتطوير Android، وواجهت مشكلة في تعيين معالج النقر لزر عادي. كنت أكتب سابقًا بلغة Java، وكان كل شيء واضحًا هناك: button.setOnClickListener(new View.OnClickListener() { ... });. لكن في Kotlin أرى العديد من الخيارات المختلفة ولا أفهم أي منها صحيح.
إليك ما جربته:
val myButton: Button = findViewById(R.id.my_button)
// الخيار 1 — مجرد lambda
myButton.setOnClickListener {
Toast.makeText(this, "نقرة!", Toast.LENGTH_SHORT).show()
}
// الخيار 2 — مع تحديد View بشكل صريح
myButton.setOnClickListener { view ->
Toast.makeText(this, "نقرة مع view: ${view.id}", Toast.LENGTH_SHORT).show()
}
// الخيار 3 — كما في Java ولكن بتركيب Kotlin
myButton.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
Toast.makeText(this@MainActivity, "نقرة عبر كائن", Toast.LENGTH_SHORT).show()
}
})