gpt4 book ai didi

android - Kotlin - 比较字符串时,运算符 '==' 不能应用于 'Editable!' 和 'String'

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:36 26 4
gpt4 key购买 nike

所以,刚开始在 Android Studio 3.0 Canary 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建议换成

IDE Suggestion

我尝试用 if (message=="") 来做,但是开始显示 Operator '==' cannot be applied to 'Editable!'和 'String' 比较字符串时出现错误。这完全令人困惑。

我的疑问:

  • 这到底是什么意思?
  • 我如何应用 IDE 建议的内容,或者是否有任何解决方法来完成此操作?

最佳答案

edtTxt.text 只是 java 的 editTxt.getText() 的替代品。所以基本上这必须在使用 == 运算符之前转换为 String

如果您想从 Editable 对象获取字符串,请使用 toString() 方法。

val message=edtTxt.text.toString()

关于android - Kotlin - 比较字符串时,运算符 '==' 不能应用于 'Editable!' 和 'String',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45187483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com