버튼을 생성하고 이벤트처리를 위한 방법
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 |