因此,刚开始在AndroidStudio3.0金丝雀7中使用Kotlin,我执行了一个检查字符串是否为空的简单操作。
以下是我的简单布局:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me"
android:id="@+id/btnClick"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Write something to print"
android:id="@+id/edtTxt"/>关于MainActivity.kt,我有下面的东西
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnClick.setOnClickListener {
val message=edtTxt.text
if (message == "")
longToast("Come on! Write something")
else
longToast("You've written $message")
}
}
}因此,最初我在clicklistener中编写了代码,如
val message=edtTxt.text
if (message.equals("")) //this here
longToast("Come on! Write something")
else
longToast("You've written $message")稍后IDE建议将其替换为

我试着用if (message=="")做这件事,但这开始显示运算符“==”不能应用于“可编辑”!和“string”比较字符串错误。这完全令人困惑。
我对此表示怀疑:
发布于 2017-07-19 10:23:28
edtTxt.text只是java的editTxt.getText()的替代品。因此,基本上,在使用String运算符之前,必须将其转换为==。
如果要从Editable对象获取字符串,请使用toString()方法。
val message=edtTxt.text.toString()发布于 2017-07-19 10:27:16
btnClick.setOnClickListener {
// edtTxt.text type of EditText
val message=edtTxt.text.toString()
if (message == "")
longToast("Come on! Write something")
else
longToast("You've written $message")
}https://stackoverflow.com/questions/45187483
复制相似问题