editText获取文本kotlin

问题描述 投票:7回答:9

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

var editTextHello = findViewById(R.id.editTextHello)

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

Toast.makeText(this,editTextHello.toString(),Toast.LENGTH_SHORT).show()
android-edittext kotlin
9个回答
12
投票

你错过了从ViewfindViewByIdEditText演员:

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

然后,您想要在吐司中显示textEditText属性:

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

为了记录,这只是更像惯用的Kotlin相当于在你的getText()上调用EditText,就像你在Java中做的那样:

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

7
投票

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

var editTextHello = editTextHello.text.toString()

使用kotlin的美丽;-)

P.s:BTW,最好选择像edx_hello这样的xml ID,对于kotlin部分,可以选择var editTextHello。然后你可以区分xml变量和kotlin变量。


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


1
投票

使用它而不是它工作正常

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

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

如果你使edittext可以为空,那么这条线就是

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

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


0
投票

使用editTextHello.text

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

0
投票

你错过了从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()
}

0
投票

保持Kotlin使用的标准语法

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

© www.soinside.com 2019 - 2024. All rights reserved.