-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
Kotlin DataBinding
20.08.08 21:01 작성 조회수 144
1
MainViewModel에서
var todos: LiveData<List<Todo>>
init {
todos = getAll()
}
이 부분을 프로퍼티로 변경하면 될 줄 알았는데
안됩니다.
val todos: LiveData<List<Todo>>
get() {
return getAll()
}
프로퍼티를 사용 할 수 있는 방법이 궁금합니다.
답변을 작성해보세요.
1
1
1
![오준석님의 프로필](https://cdn.inflearn.com/wp-content/uploads/avatars/3439/3439-bpfull.jpg?w=48)
오준석
지식공유자2020.08.08
이상하네요. 저도 혹시나 해서 제공해 주신 getter 구현해서 확인해 봤는데 잘 동작했습니다. 혹시 액티비티 쪽에서 todos를 바라보도록 수정하는 것을 잊거나 하지는 않으셨을까요?
1
![오준석님의 프로필](https://cdn.inflearn.com/wp-content/uploads/avatars/3439/3439-bpfull.jpg?w=48)
오준석
지식공유자2020.08.08
getAll() 메서드는 없애도 되고요. 다음과 같이 프로퍼티로 바로 접근하시면 됩니다.
val todos = db.todoDao().getAll()
제시해 주신 getter 코드도 잘 동작할 것 같은데요
0
![지현명님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
지현명
질문자2020.08.08
<TextView
android:id="@+id/result_text"
android:text="@{viewModel.todos.toString()}"
강의에서 사용한 성공했던 소스는 수정하지 않고
MainViewModel에서 프로퍼티만 추가했습니다.
0
0
![지현명님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
지현명
질문자2020.08.08
BaseObservable를 사용해야 하는건가 고민하고 있었는데 답변을 주셨네요. 감사합니다.
val todos: LiveData<List<Todo>>
get() {
return getAll()
}
이렇게 하면 에러는 안나는데 화면에 반응이 없습니다.
답변 7