티스토리 뷰

728x90

Kotlin에서 Button에 setOnClickListener 설정 6가지 방법정리.

 

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button1 : Button = findViewById<Button>(R.id.button1)
        val button2 : Button = findViewById(R.id.button2)
        val button3 : Button = findViewById(R.id.button3)

        // 방법 1 //
        button1.setOnClickListener {
            Toast.makeText(this, "버튼1 클릭!!", Toast.LENGTH_SHORT).show()
        }
        // 방법 2 //
        button2.setOnClickListener(object : View.OnClickListener {
            override fun onClick(view: View?) {
                Toast.makeText(this@MainActivity, "버튼2 클릭!!", Toast.LENGTH_SHORT).show()
            }
        }

        // 방법 3 //
        button3.setOnClickListener(View.OnClickListener { view -> 
            Toast.makeText(this@MainActivity, "버튼3 클릭!!", Toast.LENGTH_SHORT).show()
        })
    }
}
728x90
class MainActivity : AppCompatActivity(), View.OnClickListener {
    lateinit var button4 : Button
    lateinit var button5 : Button
    lateinit var button6 : Button

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button4 = findViewById(R.id.button4)
        button5 = findViewById(R.id.button5)
        button6 = findViewById(R.id.button6)
		
        // 방법 4 //
        button4.setOnClickListener(this)
        // 방법 5 //
        button5.setOnClickListener(listener)
        // 방법 6 //
        button6.setOnClickListener { view ->
            Toast.makeText(this@MainActivity, "버튼6 클릭!!", Toast.LENGTH_SHORT).show()
        }
    }

    override fun onClick(view: View) {
        when(view?.id) {
            R.id.button4 -> {
                Toast.makeText(this@MainActivity, "버튼4 클릭!!", Toast.LENGTH_SHORT).show()
            }
        }
    }
    
    val listener = View.OnClickListener { view ->
        when (view.getId()) {
            R.id.button5 -> {
                Toast.makeText(this@MainActivity, "버튼5 클릭!!", Toast.LENGTH_SHORT).show()
            }
        }
    }
}
728x90
250x250
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Total
Today
Yesterday