在 Android DataBinding 如何从 editText 获取整数并在 Kotlin 中使用它

In Android DataBinding how to get integer from editText and use it in by Kotlin

我想在 Kotlin 的 Android 中使用 DataBinding,示例如下 我有两个 EditText,它们下面有一个按钮和两个 TextView,每当我单击按钮时,我都希望我在 EditText 中输入的文本将显示在两个 TextView 中。 我有 User Class (Model),如果这个 class 的两个字段是字符串,一切正常,我的代码工作正常,但我的问题是当一个字段是整数时,我得到这个错误: 找不到符号导入 com.example.mydatabinding.databinding.ActivityMainBindingImpl;

如果有人能帮助我,我将不胜感激。

我的xml代码:

抱歉,这个平台对我来说一点都不友好,我不能对所有 XML 代码使用 Ctrl K !!所以我每次都通过 ctrl K 带一些照片来问我头疼的问题! 让我们继续

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/user_name_edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:ems="10"
        android:hint="name ?"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/user_age_edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:hint="age ?"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/user_name_edit" />

    <Button
        android:id="@+id/apply_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:text="Button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/user_age_edit" />

    <TextView
        android:id="@+id/user_name_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:text="@={myUser.name}"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/apply_btn" />

    <TextView
        android:id="@+id/user_age_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="@={myUser.age}"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/user_name_text" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

和用户 class 代码:

data class User (var name : String ="" , var age :Int =0) {

}

和 MainActivity 代码:

在您的 textView 中,您使用的是 android:text="@={myUser.age}",这导致了问题,因为您的 myUser.ageinteger,并且您无法在 textView 中设置 integer 值。

变化:-

"@={myUser.age}"

@={Integer.toString(myUser.age)}

问题将得到解决。