错误记录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 )

错误记录Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 )