본문 바로가기

mvvm3

[Android-java] 여러 Fragment에 한 ViewModel 공유하기 구글링을 열심히 하다가, 코틀린 코드는 많은데 자바 버전이 별로 없어서 남겨본다. 아래와 같이 뷰모델을 정의한다. // SharedViewModel.java public class SharedViewModel extends ViewModel { private MutableLiveData data = new MutableLiveData(); public void setData(String input) { data.setValue(input); } public LiveData getData() { return data; } } 위에서 정의한 ViewModel을 여러 Fragment에서 사용하도록 하자. 먼저, Fragment A에서 ViewModel을 생성하고 데이터를 설정하는 방법은 다음과 같다. // F.. 2023. 3. 13.
[Android] Cannot find identifier 'viewModel' 오류 해결 MVVM 패턴에서 livedata + databinding을 적용할 때 xml 단에서 이런 에러가 발생할 수 있다. 확인사항 1. xml에 viewModel을 아래와 같이 불러왔는지 확인한다. 참고로, 의 root는 이어야 한다. 2. 올바른 이름으로 바인딩 했는지 확인한다. 3. build.gradle (:app) 에 dataBinding 설정을 했는지 확인한다. (바인딩 설정 후 Sync를 해주어야 한다.) 2023. 2. 16.
[Android-java] MVVM Activity 안에 Fragment 넣기 (+ 버튼 적용) 아래와 같이 Activity 안에서 Radio Button에 따라 Fragment 표기를 해보자. (이 포스팅은 Activity 내 Fragment를 구성한다. Fragment 내 Fragment를 구성할 경우 다음 포스팅 참조) 1. 먼저 Activity와 Fragment를 생성해 준다. MVVM 패턴을 적용하기 위해 Fragment (with ViewModel)을 선택한다. 2. xml을 간단히 작성한다. activity_main.xml ** 주의 ** FragmentContainerView에 layout이나 name을 지정하지 않는다. 왜냐면 radio button에 따라 유동적으로 변할 값이니까. 지정하지 않을 경우 경고가 뜰 수 있는데, 경고 무시하기 클릭하면 된다. fragment_first... 2023. 2. 15.