从Kotlin的视图编辑文本绑定不起作用



我正在尝试使用mvvm更新Kotlin中的EditText from View页面。但当ViewModel初始化时,默认值是绑定的,但当我从EditText onClick监听器更改值时,它不会更新UI。

xml

<EditText
android:id="@+id/itemsDatePicker"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="@={itemviewmodel.selectedDateText}"
android:onClick="@{itemviewmodel.datePickerOnClick}"
android:hint="Select Date"
tools:ignore="AutoFill,TextFields" />

查看模型

fun datePickerOnClick(view: View) {
showDatePicker.value=true
}

查看

vm.showDatePicker.observe(this,androidx.lifecycle.Observer{ s->
val myCalendar: Calendar = Calendar.getInstance()
val date =
DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth -> // TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year)
myCalendar.set(Calendar.MONTH, monthOfYear)
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)
//This place should update the ui with selected date but not working as expected
vm.selectedDateText.value =DateHelper.getTodayDate(myCalendar.getTime())
}
DatePickerDialog(
this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)
).show()
})

我们非常感谢为克服这个问题所提供的任何帮助。提前感谢。:(

如果您正在谈论dataBinding,并且我假设您的依赖项中已经有了它。

然后。。。

  1. 检查是否包含带有<layout></layout>的xml mainLayout

  2. 检查您是否已在mainActivity中的onCreate之上创建了该布局的实例。例如:private lateinit var mainBinding: ActivityMainBinding

  3. 使用该实例/变量还可以获得例如mainBinding.itemsDatePicker的editText

相关内容

  • 没有找到相关文章