如何从Kotlin的TextInputLayout获取文本?

时间:2019-01-06 13:48:55

标签: android kotlin textinputlayout

我有一个ID为login_mobile_number的文本输入布局,我已导入此模块以停止使用findViewById方法:

import kotlinx.android.synthetic.main.activity_login.*

每当我尝试通过

从TextInputLayout获取文本时
val loginMobileNumberString:String = login_mobile_number.editText.toString()

它返回对象名称,而不是像这样在其中键入字符串:

android.support.design.widget.TextInputEditText{dfdb412 VFED..CL. .F...... 0,0-888,136 #7f0800e1 app:id/textInputEditText}

为什么会这样?从该字段获取字符串的正确方法是什么?

4 个答案:

答案 0 :(得分:2)

您可以使用它;

val loginMobileNumberString = login_mobile_number.text.toString()

无需指定为:String

答案 1 :(得分:1)

您只需要这样做:

val loginMobileNumberString:String = login_mobile_number.text.toString()

此外,您不需要从文本输入布局中提取文本,他应该只照看输入布局,就像名称中一样,您可以直接从编辑文本中进行操作。只需为其提供一个ID,然后以与文本输入布局相同的方式导入即可。

答案 2 :(得分:1)

另一种方法是将其括在引号中,使其成为字符串

val loginMobileNumberString = "${login_mobile_number.text}"

或者如果login_mobile_number指向TextInputLayout

val loginMobileNumberString = "${login_mobile_number.editText.text}"

答案 3 :(得分:0)

要从TextInputLayout中的TextInputEditText获取文本

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/descriptionInputLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toBottomOf="@+id/editTextDate2"
    tools:layout_editor_absoluteX="184dp">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:hint="Description" />
</com.google.android.material.textfield.TextInputLayout>

获取文字

val description = descriptionInputLayout.editText?.text.toString()
println("Description: $goalDescription")