1. Rxandroid와 Rxjava2 라이브러리를  gradle:모듈수준에서 추가해준다.

implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.x.x'

   implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'

 +Rxview.clicks를 사용하기 위한 Rxbinding 라이브러리 추가! ( 버튼,텍스트뷰 변수 / 클릭리스너 생성없이도 버튼->텍스트뷰 연결!)


implementation 'com.trello.rxlifecycle2:rxlifecycle-android:2.2.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.1'

 + .compost bindToLifeCycle을 사용하기 위한 Rxlifecycle 라이브러리 추가 ( 3.1.0 버전부터는 complie 대신 implementation으로 다 바뀜)
*** rx바인딩 사용시 activity는 RxAppcompatAcitivity 상속해줘야함


정리)

implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.x.x'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-android:2.2.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.1'
public class MainActivity extends RxAppCompatActivity {


버튼을 binding시켜서, 함수실행 +  토스트 띄우는 예제코드

RxView.clicks(findViewById(R.id.btn_publish))
.subscribe( e-> {
doPublish(); //함수 실행
Toast.makeText(this, "PublishSubject", Toast.LENGTH_SHORT).show(); //해당 토스트 띄우기
});


2. Letrolambda식(java8)을 사용하기 위해서는, 마찬가지로 gradle:모듈수준에서 android{} 안에 compileOptions{}만 주면 된다.

buildTypes{} 와 같은 수준에서 바로 그위에 넣어주면 됨

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}



+ Recent posts