android - 无法使用 kotlin 解决 Android Studio 中的数据绑定问题
问题描述
我正在尝试使用数据绑定将数据对象绑定到我的布局。但我收到类型不匹配的错误。而且我不明白原因,因为我是数据绑定的新手。我的代码很简单,希望有人能指导我理解我的错误。
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private var myName : MyName = MyName("Ahmed Rabee")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.myName.text = myName.name
}
数据类
data class MyName(var name: String = "" , var nickName: String = "")
布局
<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="myName"
type="com.example.aboutme.MyName" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/my_name"
style="@style/name_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@{myName.name}"
/>
这是我得到的错误,我不明白为什么它说类型不匹配。
我试图将它切换到这段代码,但它不起作用。因为它没有在布局上显示任何数据。
binding.myName.text = myName.name
希望有人可以指导我。我的错在哪里
解决方案
使用 onCreate() 中的 MyName 对象初始化布局 myName 变量。请尝试在您的代码中进行以下更改。
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private var myName : MyName = MyName("Ahmed Rabee")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.myName = myName
}
}
推荐阅读
- javascript - 用于 svg 折线 JS 的拆分数组
- android - 使用改造从不同的相对路径获取 url
- javascript - JS重定向后会话丢失
- angularjs - 具有回调函数的Angularjs 1.5组件模式不更新绑定
- loops - 带有 loop_control 和 loop_var Ansible 的循环变量
- amazon-web-services - 将 Google Analytics 导入 Redshift
- javascript - javascript 不向 ajax 发送变量只是发送 void 值
- java - 在 Eclipse 中更改 java.util.logging.Logger 输出的颜色和格式
- python - Numpy矩阵乘以不同的列
- python - While 循环条件中的变量应该退出循环,但不会