所以,刚开始使用 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=="")
进行此操作但开始显示运算符'=='无法应用于'可编辑!'比较字符串错误时出现'String'。这完全令人困惑。
我的怀疑在这里:
答案 0 :(得分:1)
edtTxt.text
只是java editTxt.getText()
的替代品。因此,在使用String
运算符之前,必须先将其转换为==
。
如果您想使用Editable
对象使用toString()
方法获取字符串。
val message=edtTxt.text.toString()
答案 1 :(得分:1)
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")
}