如何在Kotlin中获取editText并显示为吐司。
var editTextHello = findViewById(R.id.editTextHello)
我试过了,但显示对象
Toast.makeText(this,editTextHello.toString(),Toast.LENGTH_SHORT).show()
n3ipq98p1#
这是Kotlin,不是java。你不需要得到它的id。在kotlin中,只需要写:
var editTextHello = editTextHello.text.toString()
利用Kotlin的美;- )顺便说一句,最好选择edx_hello这样的xml ID,对于Kotlin部分,选择vareditTextHello,这样就可以区分xml变量和kotlin变量了。
k7fdbhmy2#
您缺少从findViewById到EditText的View的强制转换:
findViewById
EditText
View
var editTextHello = findViewById(R.id.editTextHello) as EditText
然后,您希望在吐司中显示EditText的text属性:
text
Toast.makeText(this, editTextHello.text, Toast.LENGTH_SHORT).show()
需要说明的是,这只是在EditText上调用getText()的更惯用的Kotlin等价形式,就像在Java中那样:
getText()
Toast.makeText(this, editTextHello.getText(), Toast.LENGTH_SHORT).show()
vyswwuz23#
投票的答案是正确的,但它不是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:阅读扩展,你会发现你可以创建自己的扩展,并做一个更干净的使用吐司。
kotlin-android-extensions
import kotlinx.android.synthetic.reference_to_your_view.editTextHello
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
showToast("uhuuu")
ztigrdn84#
用这个吧,很好用的
val editText = findViewById<EditText>(R.id.editText) Toast.makeText(this, editText.text, Toast.LENGTH_LONG).show()
y0u0uwnf5#
使用editTextHello.text
editTextHello.text
bvn4nwqk6#
Toast.makeText(this, editTextHello.text.toString(), Toast.LENGTH_SHORT).show()
如果将edittext设置为可空,则该行将为
edittext
Toast.makeText(this, editTextHello?.text.toString(), Toast.LENGTH_SHORT).show()
4ioopgfo7#
在Kotlin中,在EditText上调用**.text**即可,无需执行 getText 或 toString
点击按钮
button?.setOnClickListener { Toast.makeText(this,editText.text, Toast.LENGTH_LONG).show() }
甚至不需要findViewById
8yparm6h8#
您缺少从findViewById到EditText获取的视图的强制转换。但如果控件存在,则需要一个“if”,然后获取文本:
val editText = findViewById(R.id.editText_main) as EditText if (editText != null) { val showString = editText.text.toString() Toast.makeText(this, showString, Toast.LENGTH_SHORT).show() }
8条答案
按热度按时间n3ipq98p1#
这是Kotlin,不是java。你不需要得到它的id。在kotlin中,只需要写:
利用Kotlin的美;- )
顺便说一句,最好选择edx_hello这样的xml ID,对于Kotlin部分,选择vareditTextHello,这样就可以区分xml变量和kotlin变量了。
k7fdbhmy2#
您缺少从
findViewById
到EditText
的View
的强制转换:然后,您希望在吐司中显示
EditText
的text
属性:需要说明的是,这只是在
EditText
上调用getText()
的更惯用的Kotlin等价形式,就像在Java中那样:vyswwuz23#
投票的答案是正确的,但它不是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:阅读扩展,你会发现你可以创建自己的扩展,并做一个更干净的使用吐司。
在你们的课堂上是这样使用的
showToast("uhuuu")
但这超出了我们讨论的范围。
来自:https://kotlinlang.org/docs/tutorials/android-plugin.html
ztigrdn84#
用这个吧,很好用的
y0u0uwnf5#
使用
editTextHello.text
bvn4nwqk6#
如果将
edittext
设置为可空,则该行将为4ioopgfo7#
在Kotlin中,在EditText上调用**.text**即可,无需执行 getText 或 toString
点击按钮
甚至不需要findViewById
8yparm6h8#
您缺少从findViewById到EditText获取的视图的强制转换。但如果控件存在,则需要一个“if”,然后获取文本: