문근
176
2021-01-04 17:22:14
0
109

mvvm 패턴 liveData String 사용하는방법


안녕하세요 

mvvm 패턴에서 livedata를 사용하려고 하는데 어려움이 있어 질문드립니다 .

private val _userEmail = MutableLiveData<String>()
val userEmail: LiveData<String>
    get() = _userEmail


<EditText
    android:id="@+id/email_edit"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="15dp"
    android:background="@drawable/edittext_rounded_corner_rectangle"
    android:hint="아이디 입력"
    android:text="@{signUpViewModel.userEmail}"
    android:textSize="16sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toEndOf="@+id/textView9"
    app:layout_constraintTop_toTopOf="parent" />


먼저 이런식으로 mvvm 패턴을 사용하고 있습니다 .

signUpFragment 가 1~4까지 있는데 

2에서 userEmail을 editText로 받아서 4번째 프래그먼트에서 사용합니다 (사용하는 뷰 모델은 똑같습니다)

이렇게 될경우 4번쨰에서 받으면 userEmail이 null 이 나오게 되는데 

제생각에는 fragment에서 싱글톤으로 재호출 하면서 사용하거든요 

binding.signUpViewModel = baseActivity?.obtainViewModel<SignUpViewModel>()

그래서 당연하게 userEmail 이 초기화되면서 기존에 userEmail이 사라진다고 생각합니다 

이게 맞는지 부터 궁금합니다 


맞다면 이렇게 될경우 저 userEmail 을 사용할수 있는 방법들이 뭘까요? 

제생각엔 쉐어드 로 임시 보관해서 뿌려줘야 될거같은데 이벤트 버스라던가 

이 두 방법 말고 처리할수 있는 방법이 있나요? 도와주세요 !

0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.