我有一个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}
为什么会这样?从该字段获取字符串的正确方法是什么?
答案 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")