Android Studio 如何连接editText.text在吐司中显示?

7uhlpewt  于 2023-10-23  发布在  Android
关注(0)|答案(2)|浏览(121)

我刚接触Kotlin和Android Studio。
我试图访问输入的文本(editText),并在显示它之前做一些处理,但我无法做到这一点。

我尝试了三种不同的“变体”,但任何一种都有效。

.xml格式

<EditText
        android:id="@+id/placa"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/placa"
        android:autofillHints=""
        android:layout_gravity="center_horizontal"
        android:inputType="text"/>

Kotlin:

// Objects
val button: Button = findViewById(R.id.consultar)
val editTextPlaca: EditText = findViewById(R.id.placa)

// Strings
val placa = editTextPlaca.text
val placa2 = editTextPlaca.text.toString()
val placa3 = editTextPlaca.getText().toString()

// Process String
val mensaje = "The plate is " + placa + placa2 + placa3

button.setOnClickListener {
    Toast.makeText(this, mensaje, Toast.LENGTH_SHORT).show()
}

我得到的输出是:“盘子是“
谢谢你的帮忙。

yv5phkfx

yv5phkfx1#

即使用户没有在EditText中输入任何文本,也要在单击按钮之前将值赋给字符串变量placaplaca2placa3
单击按钮时从EditText读取值。

// Objects
val button: Button = findViewById(R.id.consultar)
val editTextPlaca: EditText = findViewById(R.id.placa)

button.setOnClickListener {
    val mensaje = "The plate is ${editTextPlaca.text.toString()}"
    Toast.makeText(this, mensaje, Toast.LENGTH_SHORT).show()
}

注意:我使用了$操作符来连接文本。

7gcisfzg

7gcisfzg2#

之所以会有这样的输出,是因为您是在最开始提取文本,而不是在单击按钮时提取文本。
顺便说一下,Kotlin有一个方便的字符串插值功能,所以你不必用“+”连接它。你可以这样做:

button.setOnClickListener {
    val mensaje = "The plate is ${editTextPlaca.text}"
    //further logic
}

相关问题