editText获取文本kotlin
如何在kotlin中获取editText并用吐司显示。
var editTextHello = findViewById(R.id.editTextHello)
我试过这个,但显示对象
Toast.makeText(this,editTextHello.toString(),Toast.LENGTH_SHORT).show()
你错过了从findViewById
到EditText
的View
转换:
var editTextHello = findViewById(R.id.editTextHello) as EditText
然后,你想在你的吐司显示EditText
的text
属性:
Toast.makeText(this, editTextHello.text, Toast.LENGTH_SHORT).show()
为了记录,这只是在您的EditText
上调用getText()
的更为习惯的Kotlin,就像您在Java中所做的那样:
Toast.makeText(this, editTextHello.getText(), Toast.LENGTH_SHORT).show()
Toast.makeText(this,editTextHello.text,Toast.LENGTH_SHORT).show()
投票的答案是正确的,但它不是Kotlin世界最好的答案。 如果你真的有兴趣进入这个世界,我建议你使用扩展。 从Kotlin你有kotlin-android-extensions
,你可以这样做:
import kotlinx.android.synthetic.reference_to_your_view.editTextHello
和这个:
Toast.makeText(this, editTextHello.text, Toast.LENGTH_SHORT).show()
请忘记getText()…使用这个,它更干净。
ps:阅读关于扩展,你会看到你可以创建自己的扩展,并做一个更加干净的使用的吐司。 像这样的东西:
fun Context.showToast(text: CharSequence, duration: Int = Toast.LENGTH_LONG) = Toast.makeText(this, text, duration).show()
并通过你的类来使用它:
showToast("uhuuu")
但是这超出了我们在这里讨论的范围。
来自: https : //kotlinlang.org/docs/tutorials/android-plugin.html
Toast.makeText(this, editTextHello.text.toString(), Toast.LENGTH_SHORT).show()
如果你把edittext
设为空,那么这行edittext
Toast.makeText(this, editTextHello?.text.toString(), Toast.LENGTH_SHORT).show()
使用这个,而不是工作正常
val obj=findViewById<EditText>(R.id.editText) Toast.makeText(this,obj.text, Toast.LENGTH_LONG).show()