首页 > 解决方案 > 双向数据绑定屏幕方向更改更改值

问题描述

我正在使用双向数据绑定。我的 Room 数据库中有一些数据,具体取决于用户在 edittext 中写入的内容,在 textview 中显示该值。

当我旋转屏幕时,值会更新。一开始它的空弦然后又回到原来的样子。我知道这是活动生命周期的正常行为。

所以我想知道摆脱这个问题的最佳方法。

提前致谢。

编辑文本:

        <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
            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"/>

视图模型:

val loginOddelek = NonNullMutableLiveData<String>("")

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

标签: androidandroid-roomandroid-databindingandroid-livedata

解决方案


推荐阅读