안드로이드에서 개발하다보면 여러개의 버튼에 이벤트를 넣을때가 종종있다.
버튼에 이벤트를 넣다보면 코드가 길어지는 것을 볼 수 있다.
그래서 switch case를 이용해 코드를 조금 줄여보고자 한다.
먼저 xml파일에 다음과 같이 두개의 버튼을 생성하자
일반적으로는 다음과 같이 코드를 작성할 것이다. 하지만 이 방식으로 작성하면 버튼의 개수가 많아질수록 코드의 길이가 점점 더 길어진다.
public class MainActivity extends AppCompatActivity {
Button first_btn, second_btn;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
//각버튼 아이디 매칭
first_btn = findViewById(R.id.first_btn);
second_btn = findViewById(R.id.second_btn);
//첫번째 버튼 행동
first_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
second_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});}
반면 switch case를 이용하면 다음과 같이 소스코드가 조금 줄어든다.
public class MainActivity extends AppCompatActivity {
Button first_btn, second_btn;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
//각버튼 아이디 매칭
first_btn = findViewById(R.id.first_btn);
second_btn = findViewById(R.id.second_btn);
Button.OnClickListener onClickListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
//첫번째 버튼 행동
case R.id.first_btn:
// Ex)Intent intent = new Intent(MainActivity.this,SubActivity.class);
// startActivity(intent);
break;
//두번째 버튼 행동
case R.id.second_btn:
break;
}
}
};
first_btn.setOnClickListener(onClickListener);
second_btn.setOnClickListener(onClickListener);
}
}
'안드로이드' 카테고리의 다른 글
@NonNull? @Nullable 이란? (0) | 2019.01.11 |
---|---|
엑티비티간의 데이터 전송 (0) | 2018.07.05 |
Android Intent를 사용해서 액티비티 전환하기 (3) | 2018.07.03 |
onUserLeavehint() 액티비티 이동간에 호출하지 않기 (1) | 2018.05.08 |
안드로이드 이미지 업로드 (retrofit) (5) | 2018.04.29 |