안드로이드 - 버터나이프 적용

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();

}