android - 在Android DataBinding中如何从editText获取整数并通过Kotlin使用它
问题描述
我想在下面的示例中使用 Kotlin 在 Android 中使用 DataBinding 我有两个带有一个按钮的 EditText 和它们下方的两个 TextView,每当我单击按钮时,我都希望我在 EditTexts 中输入的文本将显示在两个 TextView 中。我有用户类(模型),如果这个类的两个字段是字符串,一切正常,我的代码正常工作,但我的问题是当一个字段是整数时,我得到这个错误:找不到符号导入 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>
和用户类代码:
data class User (var name : String ="" , var age :Int =0) {
}
和 MainActivity 代码:
解决方案
在您使用的 textView 中,android:text="@={myUser.age}"
这是导致问题的原因,因为您myUser.age
无法integer
在integer
textView 中设置值。
改变 :-
"@={myUser.age}"
至
@={Integer.toString(myUser.age)}
问题将得到解决。
推荐阅读
- python - 减少校准中的测量次数
- mime-types - 更改应用程序/xml 全局的默认服务首选项
- python - Python 类型:返回类型与 Java Clazz 中的 Clazz[T] 等泛型
- docker - 文件挂载为目录而不是 docker-in-docker (dind) 中的文件
- sql - 多列上的 CASE 表达式
- php - 将组数据填充到 Highcharts 上的特定系列
- python - 以全屏模式显示单个图像(如 powerpoint)
- flutter - 在 Dart 中导入整个文件和只导入带有 show 的类有什么区别?
- javascript - 如何使用 Directus Javascript SDK 进行条件过滤?
- android - 查找用户是否在锁定屏幕上禁用通知