728x90
반응형
SMALL
간단한 예제로 a.xml 파일에
TextView id 값이 tv_text 를 클릭 했을때 tv_text 에 "hello" 를 적어보겠다.
* 예전부터 사용하던 viewbinding 방식 java
TextView tv_text = findViewById(R.id.tv_text);
....
final TextView tv_text = findViewById(R.id.tv_text);
tv_text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_text.setText("hello");
}
});
* ButterKnife viewbinding 방식 java
app > buildgradle 에 lib 추가
implementation 'com.jakewharton:butterknife:8.8.1'
(전역변수로 binding)
@BindView(R.id.tv_text ) TextView tv_text ;
....
(onCreate( ) 에서 선언)
ButterKnife.bind(this);
...
tv_text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_text.setText("hello");
}
});
* Kotlin extensions viewbinding 방식 kotlin
app > buildgradle 에 lib 추가
implementation "org.jetbrains.kotlin:kotlin-stdlib:$rootProject.ext.kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$rootProject.ext.kotlin_version"
tv_text.setOnClickListener { tv_text.setText("hello") }
이때 주의할점은 binding 을 따로 하지 않아서 xml 에 대한 모든 id 값을 공유하므로, 이름을 id 값을
잘지어야 한다.
ex) b.xml 에도 tv_text 가 있고, a.xml 에도 tv_text 가 있으면 충돌이 난다.
위에서 보는것과 같이 java -> kotlin 으로 사용하면 코드가 간결해지고, 거기다 kotlin extentios 까지사용하면
선언자체를 안해도 되서 간결의 극을 볼수있다.
-끝-
'Android Study' 카테고리의 다른 글
Android Push 진동 제어 (0) | 2020.02.26 |
---|---|
Android Keystore 데이터 보안에 대한 테스트 (0) | 2020.02.25 |
CallbackListener interface 활용한 함수 동기화시키기 (0) | 2020.02.20 |
안드로이드 해상도 폴더별 dimens (0) | 2020.01.14 |
안드로이드 Background 상태 체크하기 (0) | 2019.12.18 |