我试图在EditText中设置文本,但它说:

Type mismatch. 
Required: Editable 
Found: String

我的代码如下:

String name = "Paramjeet"
val nametxt = findViewById (R.id.nametxt) as EditText
nametxt.text = name

不要说使用setText,因为我使用的是kotlin,而不是Java。


当前回答

像这样使用:

edtTitle.setText(intent.getStringExtra(EXTRA_TITLE))
edtDesc.setText(intent.getStringExtra(EXTRA_DESC))

其他回答

val editable = Editable.Factory.getInstance().newEditable(savedString)

editText.text = editable

setText(String),所以你必须setText你的字符串到editText,所以在你的情况下是:nametext .setText(name)

看一下EditText的API:

CharSequence文本,TextView。BufferType类型)

可编辑的获取文本()

链接:https://developer.android.com/reference/android/widget/EditText.html

简单的解决方案

只需使用edittext. settext (yourdata)而不是edittext。因为EditText是可编辑的,EditText。text用于TextView

例如:

var name:String = "Muzammil"
edittext.setText(name)

这就是我的工作。

这里有几个有效的答案,但如果你仍然想使用属性格式并让你的代码看起来干净,你可以写一个扩展:

fun String.toEditable(): Editable =  Editable.Factory.getInstance().newEditable(this)

然后你可以这样使用它:

mEditText.text = myString.toEditable()