주입 프레임 Butterknife의 사용에 의존하여findViewById와 작별합니다
이 프레임워크를 사용하면 가장 흔한findViewById와 같은 대량의 코드를 절약할 수 있습니다. 만약 하나의 클래스에 대량의View가 있다면, 흔한 쓰기 방법에 따라view마다 한 줄의findViewById를 쓸 수 있습니다.버터크니프는 많은 코드를 게으름 피우게 할 뿐만 아니라 주석 프로세서를 사용합니다. 우리가 컴파일할 때 버터KnifeProcessor 클래스의 프로세스 () 방법이 실행되고 모든 버터Knife 주석 (@BindView) 을 검색한 다음 자바 클래스를 생성합니다.그래서 실행할 때findViewById를 사용하는 것과 비교하면 성능에 아무런 영향을 주지 않습니다.Butterknife는 현재 8.4.0 버전으로 안드로이드스튜디오 가져오기 방식은 공식github를 참고합니다.Activity 또는Dialog에서: 우선Activity의onCreate 방법이나Dialog의 초기화 방법에서 귀속하여this:
ButterKnife.bind(this);
물론 우리는Activity에서만 뷰를 초기화하는 것이 아니라 다른 곳에서도 초기화하는 것이 매우 간단하다. 모든 뷰의 루트 뷰를 전송한다ButterKnife.bind(view);
다음은 일반적인 사용 시나리오입니다.
4
@BindView(R.id.imageView)
ImageView imageView;
4
@OnClick(R.id.imageView)
public void onImageView() {
Toast.makeText(this, "onImageClick", Toast.LENGTH_SHORT).show();
}
4
@OnClick({R.id.imageView, R.id.textView})
@Override
public void onClick(View v) {
Toast.makeText(this, v.getClass().getSimpleName() + ":onClick", Toast.LENGTH_SHORT).show();
}
4
@OnItemClick(R.id.listView)
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
Toast.makeText(this, "onItemClick" + position, Toast.LENGTH_SHORT).show();
}
일반적으로 우리는 하나의 View를 위해 각종 감청 리셋을 설정한다. 예를 들어 On Checked Changed On Editor Action On Focus Change On Long Click On Selected On Page Change On Touch On Text Changed Butterknife는 한 줄의 간단한 주석을 통해 우리를 실현할 수 있고 사용 방법도 간단하다. 확실히 우리로 하여금 코드를 많이 줄일 수 있게 하는 게으름뱅이 신기이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.