Deperecated/Android_강의

안드로이드 - View - Button

누알라리 2020. 2. 7. 20:06
1. 버튼이란?

- 사용자가 누르면 개발자가 작성한 코드가 동작하는 뷰

 

2. 리스너

- 해당 사건이 발생했을 때 자동으로 호출될 메소드를 갖고 있는 클래스

- Button의 리스너 : OnClickListener

 

3. 버튼을 클릭했을 때 발생할 이벤트 구현 - 해당 이벤트에 대한 인터페이스를 구현한 클래스를 만들고 그 객체 생성해서 세팅

1. Button, TextView하나를 생성

2.

  2-1) OnClickListner 인터페이스를 구현한 클래스 생성

  2-2) onClick() 오버라이드

  2-3) 텍스트뷰에 클릭되었을 때 출력할 텍스트 세팅

 

// 자바는 인터페이스 만들 때 implements 키워드
// 코틀린은 상속 or 인터페이스 만들 때 :(콜론)
inner class BtnListner:View.OnClickListener
{
	override fun onClick(v: View?)
    {
    	textView1.text = "지존 현지 버튼이 클릭되었습니다";
    }
}

 

3. 

  3-1) onCreate() 함수에 리스너 객체 생성

  3-2) 클릭할 Button에 리스너 객체 세팅.

 

    override fun onCreate(savedInstanceState: Bundle?) {
       
       // 리스너 객체 생성
        var listner = BtnListner();
        
        button16.setOnClickListener(listner);
    }

 

주요 함수 설명
setOnClickListener() 버튼에 리스너 객체를 세팅.

 

4. 리스너 하나에 여러개의 버튼을 붙이는 경우 - 해당 이벤트에 대한 인터페이스를 구현한 클래스를 만들고 그 객체 생성해서 세팅

1. 리스너에 연결한다.

 

    override fun onCreate(savedInstanceState: Bundle?) {
       
        var listner3 = BtnListner3();
        button3.setOnClickListener(listner3);
        button4.setOnClickListener(listner3);
    }

 

2. 리스너에서 when 분기절로 버튼의 id를 받아와 하고싶은 작업을 처리한다.

 

    inner class BtnListner3:View.OnClickListener
    {
        override fun onClick(v: View?) {
            when(v?.id)
            {
                R.id.button3 ->
                    textView1.text = "존못";
                R.id.button4 ->
                    textView1.text = "2월7일";
            }

        }
    }

 

 

5. 버튼을 클릭했을 때 발생할 이벤트 구현 - 람다식으로 표현

- 위의 예제처럼 상속하고, OnCreate()에서 객체 생성해서 할당할 수도 있지만 코틀린에서는 람다식으로 한 번에 표현할 수 있다.

 

override fun onCreate(savedInstanceState: Bundle?)
{
       // setOnClickListner에서 선택할 수 있다.
        button5.setOnClickListener
        { view ->
            textView1.text = "이춘덕";
        }

        button6.setOnClickListener 
        { view->
            textView1.text = "8월8일";
        }
}

 

 

6. 리스너 하나에 여러개의 버튼을 붙이는 경우 - 람다식으로 표현
override fun onCreate(savedInstanceState: Bundle?)
{
        var listener4 = View.OnClickListener 
        { view ->
            when(view.id)
            {
                R.id.button7 ->
                    textView1.text = "여자";
                R.id.button8 ->
                    textView1.text = "아톰";
            }
        }

        button6.setOnClickListener(listener4);
        button7.setOnClickListener(listener4);
}

'Deperecated > Android_강의' 카테고리의 다른 글

안드로이드 - 라디오 버튼  (0) 2020.02.07
안드로이드 - CheckBox  (0) 2020.02.07
안드로이드 - View - TextView  (0) 2020.02.07
안드로이드 - View - Layout  (0) 2020.02.07
안드로이드 - View  (0) 2020.02.07