플랫폼/안드로이드 android

[안드로이드] 클릭 리스너 (2가지)

삐뚤어진 개발자 2018. 12. 27.

클릭 이벤트 리스너 (Click Listener/Android)

 

 

클릭 이벤트 리스너를 사용하는 2가지 방법을 다뤄 보겠다.

 

 

 

 

1. setonClickListener 사용

 

1
2
3
4
5
6
7
bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 작동 코드.
            }
        });
 
cs

--> onCreate에 바로 사용하여 쓸 수 있어 편하다. 

 

* 설명

- 1. (버튼 객체에 onclick 리스너를 세팅하여 사용하는 방식이다. 새로운 view에 onclick리스너를 호출하여 onClick 메소드를 오버라이딩 한다.)

- 2. '// 작동 코드' 라고 주석처리가 되어있는 부분에 버튼을 클릭을 했을때 실행될 코드를 작성해주면 된다.

- 3. 나는 주로 액티비티에 버튼이 몇개 없을 때 사용한다. 

 

참고용으로 링크를 참조하면 좋겠다.

 

View.OnClickListener  |  Android Developers

View.OnClickListener public static interface View.OnClickListener android.view.View.OnClickListener Known indirect subclasses CharacterPickerDialog Dialog for choosing accented characters related to a base character.  KeyboardView This class was deprecated

developer.android.com

 

2. OnclickListener 인터페이스 사용

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    Button bt1;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = (Button) findViewById(R.id.bt1);
        bt1.setOnClickListener(this); 
    }
 
    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.bt1:
// 작동 코드.
                break;
        }
    }
 
}
 
cs

--> 버튼들이 많을 때, 가독성이 좋고 편리하다.

 

* 설명

- 1. onCreate 메소드 안에서 onclickListener를 달아주고 따로 onClick 메소드를 오버라이드 하여 사용하는 방식이다. 

- 2. 마찬가지로 '// 작동 코드' 라고 주석처리가 되어있는 부분에 버튼을 클릭을 했을때 실행될 코드를 작성해주면 된다.

- 3. 버튼이 여러개 일때,  버튼들을 직관적으로 볼 수 있다.

 

 

참고: onClick 메소드 

 

 |  Android Developers

Specifies the action to perform when the user taps on a specific view. There can be multiple nodes for a single , with each specifying a different target view and a different action to perform when the view is tapped. Syntax Attributes motion:targetId View

developer.android.com

 

 

 

결론: 버튼이 적으면 1번 버튼이 조금 많으면 2번을 쓰자.

댓글