Kotlin中如何为整数类型数据正确实现setText方法调用
报错根因
TextInputEditText继承自TextView,它的两个setText重载方法用途完全不同,直接传入普通整数会触发类型匹配错误:
setText(CharSequence!):接收字符序列类型参数,用于设置控件上显示的文本内容setText(Int):接收的参数是res/values/strings.xml中定义的字符串资源ID(即R.string.xxx对应的Int类型常量),不是普通的整数值
你直接传入普通整数时,系统会优先匹配第二个资源ID参数的重载,但普通整数对应不上任何已定义的字符串资源,同时也不符合第一个方法的CharSequence类型要求,就会抛出重载不匹配的警告。
正确实现方式
把需要显示的整数先转换为字符串类型,再传入setText方法即可,常用写法如下:
- Kotlin场景
// 待显示的整数 val targetInt: Int = 2024 // 写法1:调用toString()转换 inputEdit.setText(targetInt.toString()) // 写法2:使用字符串模板,写法更简洁 inputEdit.setText("$targetInt") - Java场景
// 待显示的整数 int targetInt = 2024; inputEdit.setText(String.valueOf(targetInt));
避坑提示:不要直接把整数强转为CharSequence类型传入,会触发运行时类型转换异常。
内容的提问来源于stack exchange,提问作者uul
相关产品推荐
相关产品推荐

