[android] MVVM – 3. EditText, RatingBar, Validation

[android] MVVM – 3. EditText, RatingBar, Validation

========= 2017.05.31 수정 ========

https://stackoverflow.com/a/33474455/1025379 의 방법으로 변경했음.

 


정보를 입력하는 화면에서 제대로 입력하지 않았을 때도 MVVM으로 할 수 있다. 이런 작업은 RxBindig을 사용했는데,  MVVM과 RxJava를 같이 사용하는 글을 따라하다가 문득 생각나서 찾아보니 RxBinding 이 RxJava 2를 지원하게 바뀌어서 혹시나 싶어서 RxJava 2로 바꾸다가 실패해서 다른 방법을 찾았다. 이게 더 쉬운 것 같다.

이 방법은 보통은 2-way data bingding 같은 걸로 많이 검색되더라.

 

이름, 이메일, 점수를 모두 입력해야하고, 이메일은 이메일 규칙에 맞아야만 버튼이 활성화 되게 만들었다.

 

사용할 뷰모델을 만든다.

 

화면도 만든다.

 

뷰모델을 연결시켜주면 끝난다.

 

아무 것도 입력하지 않으면 ok 버튼은 비활성화 된다.

 

 

 

이름과 이메일을 넣어도 점수를 넣지 않으면 비활성화 된다.

 

 

 

다 넣었지만, 이메일 규격이 맞지 않으면 역시 비활성화 된다.

 

 

 

모두 입력하고, 이메일 규격에도 맞으면 활성화 된다.

 

 

RxBinding과 ButterKnife 를 안 써도 이렇게 쉽게 할 수 있다.