설명: 버튼을 클릭하면 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 |