ButterKnife 사용하기

2020. 12. 9. 11:16 안드로이드/개발 TIP

ButterKnife란?


스퀘어 개발자인 JakeWharton이 만든 어노테이션 프로세싱을 이용한 오픈소스 라이브러리


기존의 코드

public class TestActivity extends AppCompatActivity {

private TextView textView1;
private TextView textView2;
private TextView textView3;
private TextView textView4;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);

textView1 = (TextView) findViewById(R.id.test1);
textView2 = (TextView) findViewById(R.id.test2);
textView3 = (TextView) findViewById(R.id.test3);
textView4 = (TextView) findViewById(R.id.test4);
}
}


버터나이프 적용 후 


public class TestActivity extends AppCompatActivity {

@Bind(R.id.test1) TextView test1;
@Bind(R.id.test2) TextView test2;
@Bind(R.id.test3) TextView test3;
@Bind(R.id.test4) TextView test4;

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


코드라인 수를 줄여주고 간편하게 사용할 수 있다.



ButterKnife 공식 Github 주소

https://github.com/JakeWharton/butterknife  


적용방법?

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
}

dependencies에 라이브러리 추가



ButterKnife.bind(this);

사용할 곳에 bind시키기.


ButterKnife.bind(this, view);

activity 뿐만 아니라 fragment, custom view등에도 사용할 수있다.


@Bind(R.id.test4) TextView test4;
@BindString(R.string.app_name) String appName;
@BindBool(R.bool.flag) boolean flag;
@BindInt(R.integer.number) Integer number;

view뿐만 아니라 string boolean등도 바인드 가능하다.



@OnClick(R.id.test1) void click(){
Toast.makeText(this, "test", Toast.LENGTH_SHORT).show();
}

click도 간편하게 바인드해서 쓰자.



@OnClick({R.id.test1, R.id.test2}) void click(View v){
switch (v.getId()){
case R.id.test1:
Toast.makeText(this, "test1", Toast.LENGTH_SHORT).show();
break;
case R.id.test2:
Toast.makeText(this, "test2", Toast.LENGTH_SHORT).show();
break;
}
}

다중 클릭시 하나로 묶어 쓸수도 있다.



자세한 메서드 사용에 대한 내용은 ButterKnife 사이트에서 확인가능하다.


http://jakewharton.github.io/butterknife/



출처: https://akaisun.tistory.com/11?category=622886 [아카이의 개발창고]