editText获取文本Kotlin

bis0qfac  于 2023-03-19  发布在  Kotlin
关注(0)|答案(8)|浏览(413)

如何在Kotlin中获取editText并显示为吐司。

var editTextHello = findViewById(R.id.editTextHello)

我试过了,但显示对象

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

n3ipq98p1#

这是Kotlin,不是java。你不需要得到它的id。在kotlin中,只需要写:

var editTextHello = editTextHello.text.toString()

利用Kotlin的美;- )
顺便说一句,最好选择edx_hello这样的xml ID,对于Kotlin部分,选择vareditTextHello,这样就可以区分xml变量和kotlin变量了。

k7fdbhmy

k7fdbhmy2#

您缺少从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()
vyswwuz2

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:阅读扩展,你会发现你可以创建自己的扩展,并做一个更干净的使用吐司。

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

ztigrdn8

ztigrdn84#

用这个吧,很好用的

val editText = findViewById<EditText>(R.id.editText)
Toast.makeText(this, editText.text, Toast.LENGTH_LONG).show()
y0u0uwnf

y0u0uwnf5#

使用editTextHello.text

Toast.makeText(this, editTextHello.text, Toast.LENGTH_SHORT).show()
bvn4nwqk

bvn4nwqk6#

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

如果将edittext设置为可空,则该行将为

Toast.makeText(this, editTextHello?.text.toString(), Toast.LENGTH_SHORT).show()
4ioopgfo

4ioopgfo7#

在Kotlin中,在EditText上调用**.text**即可,无需执行 getTexttoString

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

点击按钮

button?.setOnClickListener {
        Toast.makeText(this,editText.text, Toast.LENGTH_LONG).show()
    }

甚至不需要findViewById

8yparm6h

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()
}

相关问题