설명: 버튼을 클릭하면 id : textView 에 "버튼을 눌렀습니다." 메시지가 출력된다.


내부클래스(inner class) 를 이용한 방법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        var listener = BtnListener()
        click_Button.setOnClickListener(listener)
 
    }
 
    inner class BtnListener : View.OnClickListener{
        override fun onClick(v: View?) {
            textView.text = "버튼을 눌렀습니다."
        }
 
    }
}
cs


내부클래스(inner class) 를 이용해 여러버튼을 분기해서 사용하는 방법

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
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
    var listener = BtnListener()
 
    button1.setOnClickListener(listener)
    button2.setOnClickListener(listener)
 
    }
 
    inner class BtnListener : View.OnClickListener{
        override fun onClick(v: View?) {
            when(v?.id){  //v객체에 버튼 주소값이 들어온다. id값을 가져온다.
                R.id.button1 ->
                    textView.text = "버튼1을 눌렀습니다."
                R.id.button2 ->
                    textView.text = "버튼2을 눌렀습니다."
            }
        }
    }
 
}
cs


================================================================================================================

람다식 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        click_Button.setOnClickListener { view ->
            textView.text = "버튼을 눌렀습니다."
        }
 
    }
 
}
cs


람다식을 사용하여 버튼을 분기할 때 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        var listener = View.OnClickListener{ view ->
            when(view.id){
                R.id.button1 ->
                    textView.text = "버튼1을 눌렀습니다."
                R.id.button2 ->
                    textView.text = "버튼2을 눌렀습니다."
            }
        }
 
       button1.setOnClickListener(listener)
       button2.setOnClickListener(listener)
    }
}
cs


+ Recent posts