editText获取文本kotlin

时间:2017-05-30 16:34:29

标签: android-edittext kotlin

如何在kotlin中获取editText并使用toast进行显示。

var editTextHello = findViewById(R.id.editTextHello)

我尝试了这个,但显示了对象

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

9 个答案:

答案 0 :(得分:10)

您错过了ViewfindViewByIdEditText的演员阵容:

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

然后,您想在祝酒词中显示text的{​​{1}}属性:

EditText

对于记录来说,这只是更惯用的Kotlin等同于在Toast.makeText(this, editTextHello.text, Toast.LENGTH_SHORT).show() 上调用getText(),就像你在Java中这样做:

EditText

答案 1 :(得分:7)

这是Kotlin,不是Java。您无需获取其ID。在Kotlin中,只需写:

var editTextHello = editTextHello.text.toString()

利用科特琳的美丽;-)

P.s:顺便说一句,最好选择edx_hello之类的xml ID,对于kotlin部分,最好选择var editTextHello。然后,您可以区分xml var和kotlin var。

答案 2 :(得分:2)

投票的答案是正确的,但对于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:阅读有关扩展的内容,您将看到可以创建自己的扩展,并对Toast进行更加干净的使用。像这样:

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

答案 3 :(得分:1)

使用它而不是它正常工作

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

答案 4 :(得分:0)

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

@Autowired

答案 5 :(得分:0)

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

如果您将edittext视为可空,则该行将为

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

答案 6 :(得分:0)

在Kotlin中,在EditText上调用 .text 就可以了,不需要 getText toString

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

点击按钮

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

甚至不需要findViewById

答案 7 :(得分:0)

您缺少从findViewById到EditText的View强制转换。 但是,如果控件存在,则需要“ 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 :(得分:0)

要保持Kotlin的标准语法,请使用

var editText:EditText = findViewById(R.id.editTextHello)