1

我有一个 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

4 回答 4

4

你可以用这个;

val loginMobileNumberString = login_mobile_number.text.toString()

无需指定为:String.

于 2019-01-06T15:31:33.263 回答
1

你只需要这样做:

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

此外,您不需要从文本输入布局中获取文本,他应该只负责输入的布局,就像名称中一样,您可以直接从编辑文本中完成。只需给它一个 id 并以与文本输入布局相同的方式导入。

于 2019-01-06T13:51:06.077 回答
1

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

val loginMobileNumberString = "${login_mobile_number.text}"

或者如果login_mobile_number指的是TextInputLayout

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

于 2020-03-28T06:36:07.317 回答
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")
于 2020-12-15T20:58:03.270 回答