You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android View Binding使用问题:如何解决EditText的text属性Editable类型赋值适配问题

问题原因

EditText的text属性通过View Binding暴露时,其取值方法返回的是Editable类型,直接使用=赋值时要求传入同样的Editable类型,你传入的String不属于Editable的子类,因此无法通过强制类型转换匹配类型。
你删除赋值运算符=后代码仅执行读取text值的操作,没有赋值逻辑自然不会触发类型不匹配错误。

解决方案

方案1(优先推荐):调用setText()方法

EditText继承自TextView,原生提供的setText()方法支持直接传入CharSequence类型参数(String属于CharSequence的子类,可以直接传入),写法如下:

binding.editText.setText(
    String.format("%02d", picker.hour - 12) + " : " + 
    String.format("%02d", picker.minute) + "PM"
)

方案2:显式创建Editable实例赋值

如果确实需要通过=直接给text属性赋值,可以通过Editable.Factory将String转换为Editable实例:

val timeText = String.format("%02d", picker.hour - 12) + " : " + 
               String.format("%02d", picker.minute) + "PM"
binding.editText.text = Editable.Factory.getInstance().newEditable(timeText)

内容的提问来源于stack exchange,提问作者Elena Bernucci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:00:01