错误记录Android 中使用 Kotlin 为 EditText 组件设置文本报错 ( Type mismatch. Required:Editable. Found:String )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误记录Android 中使用 Kotlin 为 EditText 组件设置文本报错 ( Type mismatch. Required:Editable. Found:String )相关的知识,希望对你有一定的参考价值。
文章目录
一、报错信息
在 android 中使用 Kotlin 开发 , EditText 组件如下 :
布局文件 :
<EditText
android:id="@+id/editText"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="wrap_content"
android:inputType="datetime"/>
Activity 操作 :
private var editText: EditText? = null
// ...
editText = findViewById(R.id.editText)
editText?.text = "2018"
editText?.text = "2018"
代码 , 报错如下 :
Type mismatch.
Required:Editable!
Found:String
二、解决方案
查看 EditText
的 .text
方法 , 来自 getText()
或 setText()
方法 ,
很显然 , Kotlin 中将 .text
用法当做了 , getText()
方法 , 由于 setText()
方法有很多重载方法 , 没有映射到 setText()
方法 ;
在 Kotlin 中为 EditText 设置 文本是 , 必须使用
editText?.setText("2018")
用法 ;
以上是关于错误记录Android 中使用 Kotlin 为 EditText 组件设置文本报错 ( Type mismatch. Required:Editable. Found:String )的主要内容,如果未能解决你的问题,请参考以下文章
错误记录记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
错误记录Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )
错误记录Android Studio 编译报错 ( kotlin library {0} was compiled with a newer kotlin compiler and not b )
错误记录Kotlin 编译报错 ( Class ‘Xxx‘ is not abstract and does not implement abstract member )
错误记录Android Studio 编译时 Kotlin 代码编译报错 ( Not enough information to infer type variable T )