android中EditText如何赋值,kotlin中EditText赋值Type mismatch方式

在kotlin中可以不用使用findViewById来初始化控件,但是在给EditText赋值时使用editText.text = "value"时会提示Type mismatch,这是因为EditText在推断types时出现问题。

30af367b2776f74b9b3e00d35211aa66.png

为了避免types不匹配,使用Editable类的Factory内部类,来解决这个问题。

etStartTime.text = Editable.Factory.getInstance().newEditable("test")

78f1c5ecc161b09f903695ffb0eeab42.png

补充知识:kotlin TextView、EditText的相关监听的常用使用

kotlin TextView、EditText的相关点击监听、长按监听、输入变化监听等的常用使用

会与以前的Android Java写法有一点点的区别。

//TextView点击监听 两种方式

//①

TextView.setOnClickListener {//这里写实现的功能}

//②

TextView.setOnClickListener(object :OnClickListener{

override fun onClick(v: View?) {//这里写实现的功能}

})

//TextView长按监听 两种方式

//①

TextView.setOnLongClickListener {

//这里写实现的功能

true}

//②

TextView..setOnLongClickListener(object : OnLongClickListener {

override fun onLongClick(v: View?): Boolean {

//这里写实现功能

return true

}

})

EditText监听与TextView几乎一样,但是它有输入内容变化的监听。

//EditText点击和长按监听 同TextView写法一样。下面写一个监听输入变化的方法 两种

//①、当前页,继承TextWatcher【例如:class XXXActivity : BaseActivity(), TextWatcher】

EditText.addTextChangedListener(this)//监听当前this,然后重写三个方法(输入后,输入前,输入文字产生变化)

override fun afterTextChanged(s: Editable?) {

//输入后的监听

}

override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {

//输入后的监听

}

override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {

//输入文字产生变化的监听

}

//②、另一种写法,直接监听

EditText.addTextChangedListener(object : TextWatcher {

override fun afterTextChanged(s: Editable?) {//输入后的监听}

override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {//输入后的监听}

override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {//输入文字产生变化的监听}

})

有什么问题欢迎留言讨论

以上这篇kotlin中EditText赋值Type mismatch方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值