1. dependency 설정
- build.gradle (Moudle: app)
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1
2. 버터나이프 사용 전 후 비교
- 1 ) 사용 전 : 오브젝트 선언 후 id 연결 및 리스너 설정, 리스너 내부에서 세팅 필요
Button mainBtnOne;
Button mainBtnTwo;
//오브젝트 id Setting
mainBtnOne = findViewById(R.id.mainBtnOne);
mainBtnTwo = findViewById(R.id.mainBtnTwo);
//오브젝트에 클릭 이벤트 설정
mainBtnOne.setOnClickListener(clickEvent);
mainBtnTwo.setOnClickListener(clickEvent);
View.OnClickListener clickEvent = new View.OnClickListener() {
@Override
public void onClick(View v) {
//클릭 시 이벤트 처리 (id 기준)
switch(v.getId()) {
case R.id.mainBtnOne :
//다이얼로그 정의
mCommDialogConfirm = new CommDialogConfirm(main);
//다이얼로그 레이아웃 외 클릭 시 자동닫힘 설정 (기본값 : true, false 시 자동닫힘 꺼짐)
mCommDialogConfirm.setCanceledOnTouchOutside(false);
//다이얼로그 보여주기
mCommDialogConfirm.show();
break;
case R.id.mainBtnTwo :
//다이얼로그 정의
mCommDialogAlert = new CommDialogAlert(main);
//다이얼로그 레이아웃 외 클릭 시 자동닫힘 설정 (기본값 : true, false 시 자동닫힘 꺼짐)
mCommDialogAlert.setCanceledOnTouchOutside(false);
//다이얼로그 보여주기
mCommDialogAlert.show();
break;
default :
break;
}
}
};
- 2 ) 사용 후 : 선언 간소화 및 해당 동작을 함수로 만들어 처리 가능 (즉, 클릭 이벤트를 함수로도 활용 가능)
@BindView(R.id.mainBtnOne) Button mainBtnOne;
@BindView(R.id.mainBtnTwo) Button mainBtnTwo;
//onCreate - 버터나이프 설정
ButterKnife.bind(this);
@OnClick(R.id.mainBtnOne) void mainBtnOne() {
//다이얼로그 정의
mCommDialogConfirm = new CommDialogConfirm(main);
//다이얼로그 레이아웃 외 클릭 시 자동닫힘 설정 (기본값 : true, false 시 자동닫힘 꺼짐)
mCommDialogConfirm.setCanceledOnTouchOutside(false);
//다이얼로그 보여주기
mCommDialogConfirm.show();
}
@OnClick(R.id.mainBtnTwo) void mainBtnTwo() {
//다이얼로그 정의
mCommDialogAlert = new CommDialogAlert(main);
//다이얼로그 레이아웃 외 클릭 시 자동닫힘 설정 (기본값 : true, false 시 자동닫힘 꺼짐)
mCommDialogAlert.setCanceledOnTouchOutside(false);
//다이얼로그 보여주기
mCommDialogAlert.show();
}
'안드로이드 > 안드로이드_java' 카테고리의 다른 글
안드로이드 - okHttp3/WebSocket 구축 및 서버 테스트 (0) | 2022.04.13 |
---|---|
안드로이드 Volley 적용 및 스프링 서버 데이터 통신 구축 (0) | 2022.04.11 |
안드로이드 Retrofit2 적용 및 스프링 서버 데이터 통신 구축 (0) | 2022.04.08 |
FCM Push(Firebase 기반) 알림 메시지 만들기 (0) | 2022.03.24 |
상태표시줄 알림 만들기 (0) | 2022.03.24 |