Двусторонняя привязка базы данных изменяет значение изменения - PullRequest
1 голос
/ 07 июня 2019

Я использую двустороннюю привязку данных.У меня есть некоторые данные в моей базе данных Room и в зависимости от того, что пользователь пишет в edittext, показывая это значение в textview.

Когда я поворачиваю экран, значение обновляется.В кулак его пустая строка, а затем вернуться к тому, как это было.Я знаю, что это нормальное поведение жизненного цикла активности.

Так что я хотел бы знать, как лучше избавиться от этой проблемы.

Заранее спасибо.

EditText:

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:inputType="textPersonName"
            android:ems="10"
            android:id="@+id/edtOddelek"
            android:text="@={viewModel.loginOddelek}"
            android:layout_marginEnd="8dp" app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="@+id/textView3"
            app:layout_constraintBottom_toBottomOf="@+id/textView3"
            app:layout_constraintStart_toStartOf="@+id/edtGeslo" style="@style/adoEditTextStyle"/>

TextView:

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/txtOddelek"
            android:layout_marginTop="8dp"
            android:text="@{viewModel.oddelek}"
            app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="12dp"
            android:textColor="@color/orangeDark"
            app:layout_constraintTop_toBottomOf="@+id/edtOddelek"
            app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="12dp"/>

ViewModel:

val loginOddelek = NonNullMutableLiveData<String>("")

val oddelek:LiveData<String> = Transformations.switchMap(loginOddelek){
    settingsModel.getSifrPr(it)
}
...