Kotlin android。 绑定不更新数据

晚上好! 我尝试在kotlin中使用绑定,但数据不会更新。 所有的编译和工作,但是当用户改变文本并点击bsave – >我尝试从textEdit返回数据,并且数据不被更新。 TextEdit包含旧数据。 在Java中它正在工作,但在KOTLIN我有问题。 你可以帮我吗?

这是我的方法onCreate,在这里我创建模型并绑定它。

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this,R.layout.activity_fblogin) auth = FirebaseAuth.getInstance() setContentView(R.layout.activity_fblogin) user = User("Test02", "123456") binding?.setVariable(BR.user, user) binding?.executePendingBindings() loginButton.setOnClickListener{_ -> loginToSystem()} signIn.setOnClickListener{_ -> showSignInActivity()} } private fun loginToSystem() { binding?.executePendingBindings() //showProgressDialog() val email = binding?.userName?.text.toString().trim() val password = binding?.userPass?.text.toString() val email2 = user?.login val password2 = user?.password if (!checkValidateForm(email, password)) { return } 

这是我的XML的主要部分:

  <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="user" type="com.example.darkt.makeyouself.models.User" /> </data> <android.support.constraint.ConstraintLayout android:descendantFocusability="beforeDescendants" android:fitsSystemWindows="true" android:focusableInTouchMode="true" tools:context="com.example.darkt.makeyouself.activities.FBLogin" tools:ignore="MissingConstraints"> <EditText android:id="@+id/userName" android:layout_width="220dp" android:layout_height="43dp" android:ems="10" android:inputType="textPersonName" android:text="@{user.login}" app:layout_constraintBottom_toBottomOf="@+id/author" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="Login"/> <EditText android:id="@+id/userPass" android:layout_width="220dp" android:layout_height="45dp" android:layout_marginTop="25dp" android:ems="10" android:inputType="textPassword" android:text="@{user.password}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/userName" tools:layout_editor_absoluteX="74dp" tools:layout_editor_absoluteY="245dp" tools:text="Password"/> <Button android:id="@+id/signIn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:background="@color/green_main" android:text="SignIn" android:textColor="@color/white" app:layout_constraintStart_toStartOf="@+id/userPass" app:layout_constraintTop_toBottomOf="@+id/userPass" /> </android.support.constraint.ConstraintLayout> </layout> 

而我的短小模特:

 data class User (val login: String, val password: String) 

如何在用户更改后刷新绑定数据?

我发现错误! 我的错误是重复setContentView:

binding = DataBindingUtil.setContentView(this, R.layout.activity_fblogin) .... setContentView(R.layout.activity_fblogin)

当我删除第二个setContentView,我解决了我的问题