안드로이드 버튼 클릭 이벤트 처리 (Android Button Click Event)

Posted by Albert 3278Day 23Hour 14Min 39Sec ago [2016-04-28]

안드로이드를 개발하면서 버튼을 클릭하면 나타나는 클릭이벤트를 구현하는 상황을 많이 마주한다!

그럴때마다 나는 구글에 검색해서 코드 복붙을 했는데, 이번 기회에 한번에 정리한다.

안드로이드 버튼 클릭 이벤트를 구현하는 방법은 다양하다. 

그 중에서 4가지를 소개할텐데,

아무거나, 편한대로 쓰면된다.


activity_main.xml

먼저 activity_main.xml 파일에 버튼이 하나 있다고 치자.

버튼의 id 이름은 btn_start 이고, 버튼에는 start라고 적혀있다.


1
2
3
4
5
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"/>
cs


MainActivity.java

activity_main.xml에 있는 버튼 이벤트를 적어주어야 하는 곳은

setContentView(R.layout.activity_main) 이라는 코드가 있는 MainActivity.java 이다.


1) OnClickListener 따로 만들어 구현하는 방법


첫번째 방법은 onClickListener를 따로 하나 만들고, activity_main.xml에 있는 버튼을 불러와서 버튼에 해당 리스너를 연결시키는 방법이다.

findViewById(R.id.btn_start).setOnClickListener(mClickListener);  대신에


Button btn_start = (Button) findViewById(R.id.btn_start);

btn_start.setOnClickListener(mClickListener);  라고 적어주어도 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MainActivity extends Activity 
{    
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        findViewById(R.id.btn_start).setOnClickListener(mClickListener);
    }
 
    Button.OnClickListener mClickListener = new View.OnClickListener() {
        public void onClick(View v) {
                //이곳에 버튼 클릭시 일어날 일을 적습니다.
            }
        }
    };
}
 
 
 
cs


2) OnClickListener를 생성과 동시에 만드는 방법


두번째 방법은 만들어 놓은 OnClickListener를 연결시키는 것이 아니라, 바로 새로운 OnClickListener를 만드는 방법이다.

생성자 new를 이용하여 OnClickListener를 만들면된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MainActivity extends Activity 
{    
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        findViewById(R.id.btn_start).setOnClickListener(
            new Button.OnClickListener() {
                public void onClick(View v) {
                    //여기에 이벤트를 적어주세요
                }
            }
        );
    }
}

3) Activity에 OnClickListener 인터페이스를 구현하는 방법


세번째 방법은 MainActivity OnClickListener implement하여 구현하는 방법이다.

MainActivity View.OnClickListener 인터페이스를 받는다.

그러면  액티비티에는 public void onClick() 메소드가 생긴다여기다가  일을 적고,

버튼의 OnClickListener  액티비티(this) 연결시켜주면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class MainActivity extends Activity implements View.OnClickListener 
{    
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button btn_start =(Button)findViewById(R.id.btn_start);
        btn_start.setOnClickListener(this);
    }
 
    public void onClick(View v) {
        //여기에 할 일을 적어주세요.
    }
}
cs


4) XML 상에서 onClick 속성을 이용하는 방법


이 방법은 activity_main.xml의 button 부분에 onClick=""을 추가해주었다.

굳이 버튼이 아니더라도 RelativeLayout이건 어디건 다 쓸 수 있다.

나는 이것을 활용하여 길쭉한 버튼을 만들때 그냥 RelativeLayout에다 onClick 속성을 써서 버튼 이벤트를 구현한다.


1
2
3
4
5
6
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="btnStart"
android:text="Start"/>
cs


여기서 onClick="변수이름" 에 주목!

MainActivity.java에서는 그 변수이름으로 메소드를 만든다.


1
2
3
4
5
6
7
8
9
10
11
public class MainActivity extends Activity
{    
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);    
    }
 
    public void btnStart(View v) {
        //여기에다 할 일을 적어주세요.
    }

출처: http://jizard.tistory.com/9




LIST

Copyright © 2014 visionboy.me All Right Reserved.