editText获取文本kotlin

如何在kotlin中获取editText并用吐司显示。

var editTextHello = findViewById(R.id.editTextHello) 

我试过这个,但显示对象

  Toast.makeText(this,editTextHello.toString(),Toast.LENGTH_SHORT).show() 

你错过了从findViewByIdEditTextView转换:

 var editTextHello = findViewById(R.id.editTextHello) as EditText 

然后,你想在你的吐司显示EditTexttext属性:

 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() 
Interesting Posts