안드로이드 코딩을 좀 더 간단하게 "ButterKnife"

Posted by 최석원 크라이스
2014/07/27 20:07 모바일/Development




안녕하세요.


ButterKnife 라이브러리를 추천드리려고 왔습니다(?).


ButterKnife는 Annotation기능을 이용하여 코딩을 쉽게할 수 있는 방법입니다.



기능 1.

 @InjectView 를 이용하면 자동으로 ID와 캐스트를 해준다.


주석이기본형식의 코드

그 밑이 ButterKnife를 이용한 코드

(eg)

@InjectView(R.id.title) TextView title;

@InjectView(R.id.subtitle) TextView subtitle;

@InjectView(R.id.footer) TextView footer;

@InjectView(R.id.button1) Button button1;



기능 2. ListAdapter의 Viewholder 심플화

public class MyAdapter extends BaseAdapter {
  @Override public View getView(int position, View view, ViewGroup parent) {
    ViewHolder holder;
    if (view != null) {
      holder = (ViewHolder) view.getTag();
    } else {
      view = inflater.inflate(R.layout.whatever, parent, false);
      holder = new ViewHolder(view);
      view.setTag(holder);
    }

    holder.name.setText("John Doe");
    // etc...

    return view;
  }

  static class ViewHolder {
    @InjectView(R.id.title) TextView name;
    @InjectView(R.id.job_title) TextView jobTitle;

    public ViewHolder(View view) {
      ButterKnife.inject(this, view);
    }
  }
}


기능 3. List Array 형식도 심플화 가능

(eg)

@InjectViews({ R.id.first_name, R.id.middle_name, R.id.last_name })

List<EditText> nameViews;


기능 4. Click 기능 심플화


이런식으로


void 이름은 자유다.


실행 화면



OnClick, OnEditorAction, OnCheckedChanged, OnItemClick,

OnItemSelected, OnLongClick, OnPageChange, OnTextChanged, OnTouch


지원



더 많은 기능이 있지만 http://jakewharton.github.io/butterknife/ 를 직접 참고할 것. (핵심만 정리했음)



※주의※ 레이아웃을 부르고 ButterKnife.inject(this); 를 불러줘야한다.

Fragment는 ButterKnife.inject(this, View이름);

※주의※ Fragment는 밑 메소드를 추가해야함. (맨 마지막에)

@Override void onDestroyView() {

super.onDestroyView();

ButterKnife.reset(this);

}


개발자: JakeWharton

다운로드: Github


다운로드:

butterknife-5.1.1.jar



ButterKnife 사용을 위한 설정!







저작자 표시 비영리 변경 금지
이 댓글을 비밀 댓글로

Fragment에서 getSupportActionBar() 사용하기

Posted by 최석원 크라이스
2014/07/06 12:34 모바일/Development


getActivity() 로만은 getSupportActionBar()를 사용할 수 없다.

그렇기에 기본 베이스가 되는 Activity를 cast 해야한다.


((MainActivity) getActivity()).getSupportActionBar()


저작자 표시 비영리 변경 금지
이 댓글을 비밀 댓글로

android support 라이브러리 버전 모음

Posted by 최석원 크라이스
2014/07/06 12:21 모바일/Development




android-support-v4.jar


android-support-v7-appcompat.jar


android-support-v7-gridlayout.jar


android-support-v7-mediarouter.jar


 android-support-v13.jar



v4 는 API 4+ 에 맞춰 제작됨

android:minSdkVersion="4"

v7 은 API 7+ 에 맞춰 제작됨

android:minSdkVersion="7"

v13 은 API 13+ 에 맞춰 제작됨

android:minSdkVersion="13"

    (v13은 v4를 포함하므로 하나만 사용해야함)

저작자 표시 비영리 변경 금지
이 댓글을 비밀 댓글로

티스토리 툴바