Android

Butter Knife 라이브러리 - 클릭 이벤트

밤토리세상 2020. 9. 26. 17:57

Butter Knife 라이브러리로 클릭이벤트를 받는 것을 해보겠습니다

기존에 리스너를 만들고 setOnClickListener 에 연결을 했었는데 

해당 라이브러리로는 한번에 연결을 할수있다

@OnClick({R.id.btn})
public void onBtn(View v) {
	switch (v.getId()) {
        case R.id.btn:
        	//이벤트 등록
        	break;
    }
}

 

위처럼 @OnClick 으로 연결하는데 뒤에 UI의 id 를 써주면 해당 UI가 연결되어진다

 

만약 연결이 안되거나 오류가 발생한다면  Bind가 안되어있을 수 있다.

 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
    ButterKnife.bind(this);
}

bind가 되어야 이벤트를 받을 수 있다.

 

그리고 여러개의 UI가 있다면 @OnClick({...}) 구문에 배열처럼 쭉 작성해주면 된다 

@OnClick({R.id.btn1,R.id.btn2,R.id.btn3,R.id.btn4})
public void onBtn(View v) {
	switch (v.getId()) {
        case R.id.btn1:
        	//이벤트 등록
        	break;
        case R.id.btn2:
        	//이벤트 등록
        	break;
        case R.id.btn3:
        	//이벤트 등록
        	break;
        case R.id.btn4:
        	//이벤트 등록
        	break;
    }
}

위처럼 작성하면 여러개의 이벤트를 받을수 있다 

또한  매소드 이름이 onBtn 인데 이것은 원하는 이름으로 작성을 하면 된다