본문으로 바로가기

[안드로이드]편리한 라이브러리(Butter Knife)

category Android 2017. 8. 7. 10:02

안녕하세요!! 오늘은 편리한 안드로이드 코딩에 있어서 사용하면 편리한 라이브러리중 하나인 Butter Knife 라이브러리를 알아보겠습니다!!


java의 annotation을 사용하여 view 를 편리하게 java코드 에 할당할수 있습니다. 


설명보다는 코드와 스크린샷을 보면서 알아보겠습니다.


기본적으로


public class BasicActivity extends AppCompatActivity implements OnDateSelectedListener, OnMonthChangedListener {
 
    private static final DateFormat FORMATTER = SimpleDateFormat.getDateInstance();
 
    MaterialCalendarView widget;
    TextView textView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_basic);
        ButterKnife.bind(this);
       
        MaterialCalendarView widget = (MaterialCalendarView)findViewById(R.id.calendarView);
        TextView textView = (TextView)findViewById(R.id.textView);
 
        widget.setOnDateChangedListener(this);
        widget.setOnMonthChangedListener(this);
 
        //Setup initial text
        textView.setText(getSelectedDatesString());
    }
 
...


이와같은 코드를


public class BasicActivity extends AppCompatActivity implements OnDateSelectedListener, OnMonthChangedListener {
 
    private static final DateFormat FORMATTER = SimpleDateFormat.getDateInstance();
 
    @Bind(R.id.calendarView)
    MaterialCalendarView widget;
 
    @Bind(R.id.textView)
    TextView textView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_basic);
        ButterKnife.bind(this);
       
        widget.setOnDateChangedListener(this);
        widget.setOnMonthChangedListener(this);
 
        //Setup initial text
        textView.setText(getSelectedDatesString());
    }
 
...


이런식으로 변경할수 있습니다


라이브러리는 안드로이드 스튜디오의 Gradle Scripts 의 build.gradle(Module) 에서 


 dependencies 안에 compile 'com.jakewharton:butterknife:7.0.1' 을 추가하면 사용가능합니다.




액티비티로 이동후 onCreate 안에 빨간박스 처럼 ButterKnife.bind(this); 로 바인드를 하면


이전처럼 onCreate 안에서 findViewId 가 아닌 

@Bind 로 변수를 얻어와서 사용가능합니다. 


라이브러리의 사용으로인해 findVIewId를 10번 이면 10번 얻어와서 사용해야 하는 번거로움을 줄일수있습니다!


뿐만아니라 ClickListener 또한 setOnClickListener 을 선언할 필요 없이 


@OnClick(R.id.action_btn)
void onCallClick() {
....
}

이와같이 사용 가능합니다.



오늘은 안드로이드 코딩에있어서 유용한 라이브러리인 Butter Knife 에 대해 알아보았습니다!! 다음번엔 더욱 유용한 정보를 가지고 돌아오겠습니다.