Kotlin – 运算符'=='不能应用于'可编辑'! 和'String'比较字符串
所以,刚刚开始在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建议将其替换
我试着用if (message=="")
这样做,但是开始显示运算符'=='不能应用于'可编辑'! 和“字符串”比较字符串错误。 这是完全混淆的。
我的疑惑在这里:
- 这实际上是什么意思?
- 我怎么能应用什么IDE建议或有任何解决方法来完成这个?
edtTxt.text
只是java的editTxt.getText()
的替代品。 所以基本上这必须在使用==
运算符之前转换为String
。
如果要从Editable
对象中获取字符串,请使用toString()
方法。
val message=edtTxt.text.toString()
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") }