본문 바로가기

Android

Android] Button 클릭 이벤트 처리

버튼을 생성하고 이벤트처리를 위한 방법

 

1.setonClickListener 사용

    1-1. 익명 클래스를 사용하여 이벤트 처리

Button button = (Button) findViewById(R.id.button) ;
button1.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View view) {
        //이벤트
    }
});

    장 : Button의 이벤트가 어디서 처리되는지 직관적으로 확인가능, 코드 작성이 간결함

    단 : Button의 개수가 많아질수록 클래스 객체를 생성해야됨

 

    1-2. 생성되어있는 익명 클래스를 참조하여 이벤트 처리

 Button.OnClickListener onClickListener = new Button.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.button1 :
                   //버튼1 이벤트
                    break ;
                case R.id.button2 :
                    //버튼2 이벤트
                    break ;
                case R.id.button3 :
                    //버튼3 이벤트
                    break ;
            }
        }
    } ;
    Button button1= (Button) findViewById(R.id.button1) ;
        button1.setOnClickListener(onClickListener) ;
    Button button2 = (Button) findViewById(R.id.button2) ;
        button2.setOnClickListener(onClickListener) ;
    Button button3 = (Button) findViewById(R.id.button3) ;
        button3.setOnClickListener(onClickListener) ;
}

    장 : 필요할 때 마다 객체를 만들 필요가없다

    단 : 이벤트가 어디서 처리되는지 직관적으로 보기 힘들다

 

2.OnClickListener 사용

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    Button button1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(this);
    }

    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.button:
                // 이벤트
                break;
        }
    }

 

장 : 버튼이 많아도 가독성이 좋고 편리함

 

'Android' 카테고리의 다른 글

Android] Radio Button  (0) 2022.02.04
Android] Toast 출력, 위치 설정  (0) 2022.01.31
Android] Intent  (0) 2022.01.24
Android] ImageButton 이미지 크기 조절  (0) 2022.01.19
Android] Button 배경 색 설정 시 변경 안되는 경우  (0) 2022.01.16


Calendar
«   2025/03   »
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 26 27 28 29
30 31
Tags
더보기
Archives
Visits
Today
Yesterday